一种简单的大数据分布式调用计算方法与流程

文档序号:13590880阅读:804来源:国知局

本发明涉及一种简单的大数据分布式调用计算方法,用于实现主从式的大数据分布式调用和计算。



背景技术:

在网络通信如此发达的今日,任何一种互联网应用,不带后台服务器支持都是难以想象的。后台服务器既实现具体的业务,同时也负责管控着连接到其上的各种智能终端设备,实现着对各个终端设备的管理,统计和监控。由于不是每个终端设备都具备独立的ip地址,具备相应的服务能力,因此,大多数情况下,都是采用终端设备定期向后台服务器进行远程过程调用报告的实现机制。这样的话,后台服务器就可以掌握每一个终端设备的生存状态。通过智能终端设备向后台服务器进行远程过程调用,就可以获取服务器要发送给智能终端设备的任何信息。这些信息可以按照自定义的方式进行解析。如果自定义的信息包括了要调用的智能终端侧计算方法所需要的足够信息,智能终端就可以执行计算并回馈计算结果,于是就相当于服务器对终端执行了一次远程过程调用,整个系统就执行了分布式计算工作。



技术实现要素:

本发明的目的在于提供一种简单的大数据分布式调用计算方法,采用分布式的计算方式,服务器将部分计算任务分发给各个连接的终端,待各个终端计算完毕后,再报告结果给服务器,由服务器进行汇总,得出最终的计算结果。

为了实现上述目的,本发明提供了以下技术方案:

本发明提供一种简单的大数据分布式调用计算方法,服务器端可以被各个智能终端随时访问,其调用计算方法包括以下内容:

智能终端复位完成后,向服务器端发起设备注册及设备能力报告请求,进行注册认证及计算余量报告;

智能终端成功注册后,定期向服务器端发起设备状态报告请求,报告设备的状态;

智能终端在进行设备状态报告时,检测并获取设备管理命令,且在执行后向服务器端报告执行结果;

服务器端在接到智能终端的设备能力报告后,分析及判断智能终端的计算能力;若智能终端具备计算能力,则根据智能终端的能力状况分配合适的计算任务;若智能终端不具备计算能力,则不分配计算任务;

智能终端在进行设备状态报告时,检测并获取计算任务,且在执行后向服务器端返回计算结果。

与现有技术相比,本发明具有以下优点:

本发明的一种简单的大数据分布式调用计算方法,采用主从中心结构,各个终端设备需要定期向服务器报告终端设备的状态,同时获取相应的计算任务、计算数据,并返回计算的结果,采用分布式的计算方式,充分利用智能终端侧的计算能力,减轻服务器计算负担。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

图1为本发明的实施例的智能终端和服务器之间交互方式框图;

图2为本发明的实施例的分布式任务的邮箱机制示意图;

图3为本发明的实施例的服务器分工结构示意图。

具体实施方式

以下结合附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。

本发明在现有的终端状态报告机制的基础上,升级成一种简单的大数据分布式调用计算方法,采用主从中心结构,各个终端设备需要定期向服务器报告终端设备的状态,同时获取相应的计算任务,计算数据,并返回计算的结果。采用json作为智能终端与服务器组件间交互信息的数据交换格式,便于支持不同编程语言,不同类型的终端。

本发明以下将说明这种类型的智能多媒体终端与服务器端的连接方式,需要满足的条件,操作方式以及远程分布式调用的实现方法。

1、连接方式

智能多媒体终端与服务器端的连接方式采取有线,无线的方式来完成,连接方式可以是任意的有线或者无线方式,但是需要保证足够的上行,下行带宽。

连接的时候,可以互联网连接,也可以在局域网内进行连接。但是需要保证智能终端可以可靠的连接到服务器上。如果是互联网部署的情况下,服务器端就需要具备独立的,可以被各个智能多媒体终端随时访问到的ip地址。具体实现时,可以自行架设服务器,或者使用公共的云服务器。

2、数据交换格式

智能多媒体终端与服务器端之间,采用json(javascriptobjectnotation)作为终端与服务器侧组件间交互信息的数据交换格式,其是以javascript为基础的数据表示语言。既方便于人的读写习惯,又有利于计算机的解析和生成。这种数据交换格式,是独立于具体的操作系统和编程语言的,因此便于支持不同编程语言,不同类型的终端。这样的话,就不会对智能终端的操作系统类型,编程语言类别做出限制。

3、终端和服务器端的交互方式

智能终端和服务器端采用rpc(remoteprocedurecall),即远程调用的方式来进行交互。也就是客户端通过某种协议向服务器发起请求并获得结果的交互方式。

由于服务器端有独立的,可以被各个智能多媒体终端随时访问到的ip地址。因此,智能终端通过rpc(remoteprocedurecall),即远程调用的方式来调用服务器是非常简单和直接的。

但是各个智能多媒体终端,在现有的网络条件下,可能不具备可以随时访问的独立ip地址,而且各个终端之间差异比较大,计算能力也可能差异比较大,不太可能安排统一的服务支持。因此,设计采用有计算能力的终端去服务器端获取任务,执行计算,并返回结果是比较合理的做法。

为此,将智能多媒体终端,分为两大类,一类是不具备计算余量的终端,这里简称为a类终端,另一类是具备计算余量的终端,在这里简称为b类终端。不具备计算余量的a类终端,只需要支持基本的调用服务器rpc的能力即可,其执行rpc,只是用来报告设备能力,设备特性,报告设备状态,支持一些基本的设备管理功能。而具备计算余量的b类终端,除了这些a类终端所具备的功能外,还可以通过rpc执行任务获取,分布式计算,报告计算结果等功能。

图1给出了各个智能终端和服务器之间的交互方式,图1中箭头描述为单向的,只是代表交互过程由单方发起,指向箭头所在的另一方,不表示两者之间没有双向数据流。实际上交互过程是由智能终端发起,由服务器端根据交互的内容回应数据。其具体内容如下:

1)智能终端设备复位完成后,均会执行设备注册,设备能力报告流程。必须是通过注册认证的设备,方可进行进一步的处理流程。设备能力报告将报告设备是否支持计算任务计算,以及支持的任务计算功能的集合,服务器在得知这些信息后,便于根据各个终端的实际能力情况,分配合适的计算任务。

2)成功注册的设备会按要求定期报告“心跳”包,报告自身的状态/设备事件,检测是否有新的设备管理任务或者计算任务到达,如果有的话,就负责取出相应的管理任务或者计算任务,进行执行并返回结果。整个过程都是智能终端设备发起的,是智能终端设备请求,而非服务器端进行推送。

3)为了保证相互的兼容性,设计采用的是“邮箱”机制,这些信息都是由终端设备来从邮箱中取出,而不是从服务器中推送出来的。图2给出了“邮箱”机制的实现原理。在服务器端的分布式任务分配逻辑,会根据需要为各个智能终端设备分配分布式计算任务,但是先将其存入缓存中,缓存的引入主要用于提高访问速度。缓存机制会在合适的时候,存入数据库做持久化操作。当然缓存的大小可以控制,如果缓存不够大,部分数据只有存放在数据库中。当智能设备请求分布式计算任务时,服务器侧会先检测缓存,必要时在数据库中寻找,然后回送给智能终端设备。看起来,对于一个智能终端设备来讲,分布式任务是从服务器端侧属于自己的邮箱中取出来的一样。因此,这样的机制叫做“邮箱”机制。

4)为保证设备管理任务或者计算任务的及时处理,终端设备在发现收到服务器端给出的任务后,将会连续处理,直到所有任务处理完毕。

4、智能终端设备

将智能多媒体终端(智能终端)分为两大类,一类是不具备计算余量的终端,这里简称为a类终端;另一类是具备计算余量的终端,在这里简称为b类终端。不具备计算余量的a类终端,只需要支持基本的调用服务器rpc的能力即可,其执行rpc,只是用来报告设备能力,设备特性,报告设备状态,支持一些基本的设备管理功能。而具备计算余量的b类终端,除了这些a类终端所具备的功能外,还可以通过rpc执行任务获取,分布式计算,报告计算结果等功能。此外,具备计算余量的b类终端,也可以根据自身的情况,选择支持全部或者部分分布式计算功能。满足本方法里面的智能终端设备的内容说明如下:

1)具备快速高并发的网络访问能力,与具体操作系统,编程语言无关。

2)满足指定的协议接口规范,能够完成设备的注册,状态报告,设备能力的报告,获取计算任务,执行计算和报告执行计算结果的能力,根据自身设备的类型,支持对应的接口。b类设备接口是a类设备接口的超集。

3)必须是通过注册认证的设备,方可进行进一步的处理流程。成功注册的设备会按要求定期报告“心跳”包,报告自身的状态,检测是否有新的设备管理任务或者计算任务到达,如果有的话,就负责取出相应的管理任务或者计算任务,进行执行并返回结果。整个过程都是智能终端设备发起的,是智能终端设备请求,而非服务器端进行推送。

5、管控服务器

管控服务器(服务器端),包括两大组成部分,这两部分是可以独立部署和运行的。下层部分是高性能的socket服务框架,用于处理和终端设备的连接,管理设备的注册,能力/事件报告,获取设备管理命令,接收执行结果。这个是通过开放给终端设备一系列的rpc调用接口来实现的。

上层部分是可选的,是基于mvc(model-view-controller)的管理框架,它以下层socket服务框架部分提供的接口为基础,为用户提供一个管理的操作平台系统。

图3给出了服务器上下两层的一个分工结构,其内容说明如下:

1)包含两种类型的进程,主进程和工作者进程,主进程只负责监控子进程,不负责接收数据,也不做任何业务逻辑。每个worker进程独立运作,每个worker进程都能上万的客户端连接,并处理这些连接上发来的数据。

2)支持多进程,多任务,每一个worker子进程独自监听网络连接,并接收发送及处理数据。支持tcp,udp协议,并可支持各种应用层自定义协议,支持高并发操作。

3)算法实现方面,只有适合并行,分布式计算的算法才能进行处理。服务器侧通过调用具备该算法能力的智能终端进行计算,并完成最终的结果汇总和处理功能。在进行任务分配的时候,服务器端只是向终端指明需要调用此计算方法,并提供相应的数据给终端侧即可,具体执行功能是由智能终端来最终完成的。

应当理解,本发明上述实施例及实例,是出于说明和解释目的,并非因此限制本发明的范围。本发明的范围由权利要求项定义,而不是由上述实施例及实例定义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1