一种基于云计算平台的交通数据组合处理方法与流程

文档序号:12756311阅读:256来源:国知局
一种基于云计算平台的交通数据组合处理方法与流程
本发明属于智能交通领域,涉及一种交通数据组合处理方法。

背景技术:
随着交通诱导、控制和信息发布等应用需求的不断扩展,交通信息采集技术逐步由单一方式采集向多种方式集成发展,如SCATS数据采集技术、GPS数据采集技术、以及利用感应线圈、超声波、红外线、微波、视频检测技术等。由于交通传感器质量的提高,单位时间内采集的数据量增多,同时随着城市的发展,部署的传感器数量增多,采集的数据类型不同、结构复杂、数据量大,造成了海量的交通数据的处理。RDBMS是传统存储管理数据的方法,然而,随着数据量的不断增大,其存在的问题也愈突出,主要包括:扩展困难、维护复杂、成本费用高。与此同时,人们对交通应用的需求也随着交通在社会的发展面临的问题也变的越来越多样化,传统解决交通中存在的某一问题是开发具有针对该问题的应用,然而这种方式存在着重用性差的缺点,对于新的问题,往往需要开发新的应用,从而造成了资源的浪费。在当今的交通数据采集、处理、发布体系中,服务器由开发者单独部署,不同的服务需要配置不同的服务器,随着服务数量的增多,服务器会变得过于庞大。针对现有处理交通数据的方式存在的问题,人们提出了利用云计算和服务组合技术来解决目前交通处理过程中存在的问题,云计算是一种资源虚拟化技术,并通过服务的形式提供基础资源服务,用户可以快速获根据自己的需求获取相应的资源;Web服务技术是一种web应用模式,提供了一个分布式环境,应用程序或组件以一种跨平台、跨语言的方式进行无缝集成,是一种松散耦合、可复用的软件模块,然而单一的web服务难以解决现有复杂交通数据处理的需求,因此,通过提取交通处理问题中共性模块,通过服务组合技术组合共性模块和个性模块,创建新的功能。云计算技术和web服务组合技术的集合,用户可以根据需求快速获取所需的资源,并进行服务的快速部署,并以服务的形式提供给其他用户使用,而其他用户可以通过服务组合技术,从而完成复杂数据处理过程。云计算与服务组合技术的结合,从而解决了传统服务部署方式中存在的基础资源部署困难,扩展复杂,成本费用高以及资源利用率低等问题。现有的服务组合技术,如公开号为CN102571962A的中国专利公开了一种面向云制造的服务组合路径构造方法,该方法是通过利用业务流程建模语言(BusinessProcessModelingLanguage,BPEL)来协调服务之间的的运行,这种方式通过一台服务器上的BPEL引擎来执行用户提交的通过BPEL建模语言设计的服务组合流程,从而具体实现服务的组合过程,然而这种方式并不适合交通数据流的组合处理,因为所有的服务处理过的数据都需要通过BPEL引擎所在的服务器来提交给其他的服务,这不仅容易成为整个系统的瓶颈,而且其可靠性低,因为BPEL引擎或者其所在的服务器发生错误,就会导致所有的服务组合不能正常运行,所以这种方式并不适合数据的组合处理过程。

技术实现要素:
为了克服已有交通数据处理方法的可靠性较低、处理效率不高的不足,本发明提供一种可靠性良好、处理效率高的基于云计算平台的交通数据组合处理方法,该方法根据用户的交通数据处理组合请求,将数据处理服务之间的交互信息存储在各个服务所在的云计算平台的虚拟机中,待执行交通数据的组合处理时,每个服务根据交互信息与其他服务进行协调,最终共同完成交通数据的处理。本发明解决其技术问题所采用的技术方案是:一种基于云计算平台的交通数据组合处理方法,所述组合处理方法包括以下步骤:(a)分配客户端唯一客户编号Ci,并为该客户端选择的每一个服务分配一个服务调用编号其中,Ci是第i个客户端分配的编号,是客户编号为Ci的客户端选择的第j个服务分配的服务调用编号,其对应的服务为传感器数据经过处理后得到最终的道路交通状态数据这一过程中的某一个子处理过程;(b)选择组合的过程中,对任意两个相连的被组合的服务调用和分别对应交通数据处理过程中两个数据处理子过程,其中,相对于为数据处理输出服务调用,输出的类型为(oarg1,oarg2,oarg3,...,m),相对于为数据处理输入服务调用,输入要求为(inreq1,inreq2,inreq3,...,n),通过数据匹配判断单元判断(oarg1,oarg2,oarg3,...,m)和(inreq1,inreq2,inreq3,...,n)是否匹配;如果匹配成功,则服务调用所在服务端的服务组合结构数据库中插入一行数据,包括:本次客户编号Ci、数据输出服务调用编号数据输入服务调用地址URL()和数据输入服务调用编号其中,(oarg1,oarg2,oarg3,...,m)中oargk(k=1,2,3,...,k≤m)为服务调用的第k个参数的类型,m为参数个数,(inreq1,inreq2,inreq3,...,n)中inreqt(t=1,2,3,...,t≤n)为服务调用的第t个输入参数的类型;URL()为通过网络应用程序接口技术调用远程服务程序所使用的地址;(c)运行服务,利用服务组合的方法,通过组合的服务共同完成对海量数据的处理,具体包括如下过程:(c1)对于任意一个服务调用编号为的服务运行,需要接收前一个服务调用的数据,其数据包括服务调用编号客户编号Ci以及需处理的数据Data;处理数据,完成该服务的数据处理功能,从而得到处理后的数据RS(Data);(c2)通过服务结构数据库查找客户编号为Ci,服务调用编号字段为从而获得本次服务后的下一个服务调用编号及服务地址URL(),通过服务地址URL()调用下一个服务,并传递处理后的数据RS(Data)、客户编号Ci及下一个服务调用编号进一步,所述步骤(b)中,数据匹配单元的匹配过程为:首先判断m,n是否满足m=n,若不满足,则匹配不成功,若满足则继续判断oargk,inreqt(k=t,且k,t=1,2,3...)是否满足oargk=inreqt,若满足,则匹配成功,否则匹配不成功。本发明的有益效果主要表现在:1、可靠性高,该方法不需要依靠控制中心来协调各个服务的之间的运行,即使其中的一个服务或多个服务所在虚拟机发生故障,也不会影响其他服务之间的组合处理过程;2、率高,由于服务之间的数据流动不是通过控制中心传递,而是服务之间直接传递,从而减少了控制中心的负载,提高了数据的处理效率。附图说明图1为基于云计算平台的交通数据组合处理方法的流程图;图2为本发明的一个服务组合举例的示意图;图3为本发明的单输入单输出形式的服务组合的示意图;图4为本发明的单输入多输出形式的服务组合的示意图;图5为本发明的多输入单输出形式的服务组合的示意图。具体实施方式下面结合附图对本发明作进一步描述。参照图1~图5,一种基于云计算平台的交通数据组合处理方法,包括:(a)分配客户端唯一客户编号Ci,并为该客户端选择的每一个服务分配一个服务调用编号其中Ci是第i个客户端分配的编号,是客户编号为Ci的客户端选择的第j个服务分配的服务调用编号,其对应的服务为传感器数据经过处理后得到最终的道路交通状态数据这一过程经过划分后的某一子处理过程;(b)选择组合的过程中,对任意两个相连的被组合的服务调用和分别对应交通数据处理过程中两个数据子处理过程,其中,相对于为数据处理输出服务调用,输出的类型为(oarg1,oarg2,oarg3,...,m),相对于为数据处理输入服务调用,输入要求为(inreq1,inreq2,inreq3,...,n),通过数据匹配判断单元判断(oarg1,oarg2,oarg3,...,m)和(inreq1,inreq2,inreq3,...,n)是否匹配;如果匹配成功,则服务调用所在服务端的服务组合结构数据库中插入一行数据,包括:本次客户编号Ci、数据输出服务调用编号数据输入服务调用地址URL()和数据输入服务调用编号其中,(oarg1,oarg2,oarg3,...,m)中oargk(k=1,2,3,...,k≤m)为服务调用的第k个参数的类型,m为参数个数,(inreq1,inreq2,inreq3,...,n)中inreqt(t=1,2,3,...,t≤n)为服务调用的第t个输入参数的类型;数据匹配单元的匹配过程为:首先判断m,n是否满足m=n,若不满足,则匹配不成功,若满足则继续判断oargk,inreqt(k=t,且k,t=1,2,3...)是否满足oargk=inreqt,若满足,则匹配成功,否则匹配不成功;URL()为通过网络应用程序接口技术调用远程服务程序所使用的地址。(c)运行服务,利用服务组合的方法,通过组合的服务共同完成对海量数据的处理,具体包括如下过程:(c1)对于任意一个服务调用编号为的服务运行,需要接收前一个服务调用的数据,其数据包括服务调用编号客户编号Ci以及需处理的数据Data;处理数据,完成该服务的数据处理功能,从而得到处理后的数据RS(Data);(c2)通过服务结构数据库查找客户编号为Ci,服务调用编号字段为从而获得本次服务后的下一个服务调用编号及服务地址URL(),通过服务地址URL()调用下一个服务,并传递处理后的数据RS(Data)、客户编号Ci及下一个服务调用编号本实施例中,一种基于云计算平台的交通数据组合处理方法,具体包括以下处理过程:101:(1)从服务列表中选取若干需要的服务,并为每个选择的服务分配调用编号。例如sx(x=1,2,3…)为服务编号,call_id_y(y=1,2,3…)为服务调用编号。若两个或多个服务编号相同的服务,在组合中处理的输入数据源和输出目的服务不同,则会出现服务编号相同,服务调用编号不同的情况。如图2所示,s1即为此情况。调用编号为call_id_1的s1服务,其数据输入源是调用编号为call_id_2的s2服务,数据输出是调用编号为call_id_4的s3服务;而调用编号为call_id_3的s1服务,输入数据源是调用编号为call_id_4的s3服务,数据输出是调用编号为call_id_5的s6服务。这两个相同的s1服务调用有相同的功能,但属于不同的服务调用,因此服务调用编号不同。(2)分配客户编号user_id_z(z=1,2,3…),在服务所在服务端,一个服务可以被多个客户使用,也可以被同一个客户多次使用,从而形成不同的服务调用。客户在选择一个服务时分配的服务调用编号是独立的,不同客户在选择一个服务时分配的服务编号有可能相同,因此,在服务端,对于属于不同客户调用相同的服务时,可通过客户编号和服务调用编号的组合区别不同的服务调用。例如s2被两个客户(user1_id,user2_id)使用三次:编号为user1_id的用户使用两次,形成了调用编号为call_id_1和call_id_2的两个服务调用,编号为user2_id的客户使用了一次,形成了调用编号为call_id_1的服务调用,此时,s2的两个服务调用编号均为call_id_1,但他们是属于不同客户的不同服务调用,所以通过user1_id+call_id_1和user2_id+call_id_1来区分这两种不同的服务调用。102:每个服务所在的服务端,需要维护一个服务组合结构数据库的一部分,该数据库有user_id、call_id、next_call_id和next_service_url四个字段:user_id:调用该服务的客户编号,通过和call_id字段一起用来区分服务所属于的服务调用;call_id:本服务的一个服务调用编号,同user_id字段一起用来区分服务所属于的服务调用;next_call_id:本次服务结束后,需要调用的下一个服务调用的编号,在下一个服务中,和user_id一起用来区分下一个服务调用;post_service_url:下一个服务调用的地址,本服务运行结束后,通过网络应用程序接口使用该地址调用下一个服务。在客户进行组合的过程中,在服务组合结构数据库中,完成上述数据的修改以及插入操作,列如s1→s2→s3的服务组合过程中,每个使用服务组合客户端都有一个编号,假设当前客户端分配的编号为:user1_id,s1的服务调用编号为call_id_1,服务编号为s1_id;s2的服务调用编号为call_id_2,服务编号为s2_id;s3的服务调用编号为call_id_3,服务编号为s3_id。(1)当将s1和s2进行组合时,触发如下事件:通过s1服务编号s1_id查询服务库获得s1的输入数据要求s1_input_type,输出数据类型s1_output_type,服务地址s1_url;通过s2服务编号s2_id查询服务库获得s2的输入数据类型s2_input_type,输出数据类型s2_output_type,服务地址s2_url;数据匹配判断单元判断s1的数据输出类型和s2的数据输入类型是否匹配,如果匹配,则将执行如下操作:对于s1的服务结构数据库,插入一行数据,其中,user_id字段为user1_id,call_id字段为call_id_1,next_call_id字段为call_id_2,next_service_url字段为s2_url。如果不匹配则s1和s2的组合失败。(2)当用将s2和s3进行组合时,触发的事件如下:通过s2服务编号s2_id查询服务库获得s2的输入数据要求s2_input_type,输出数据类型s2_output_type,服务地址s2_url;通过s3服务编号s3_id查询服务库获得s3的输入数据类型s3_input_type,输出数据类型s3_output_type,服务地址s3_url;数据匹配判断单元判断s1的数据输出类型和s2的数据输入类型是否匹配,如果匹配,则将执行如下操作:对于s2的服务结构数据库,插入一行数据,user_id字段为user1_id,call_id字段为call_id_2,next_call_id字段为call_id_3,next_service_url字段为s3_url。如果不匹配则s2和s3的组合失败。服务的三种基本组合形式以及运行过程:i.单输入单输出形式,如图3所示。服务s2所在服务端维护的服务结构数据库有一行记录,表示该服务调用所调用的服务输出只有s3,假设当前客户端分配的id为:user1_id,s1的服务调用id为call_id_1,s2的服务调用id为call_id_2,s3的服务调用id为call_id_3。s2所在服务端中的服务结构数据库有一项记录如下表所示:user_idcall_idnext_call_idnext_service_urluser1_idcall_id_2call_id_3s3_url整个调用过程如下:1)s1在数据处理结束时,将s1的下一个服务服务调用编号call_id_2、客户编号user1_id以及源数据data1传递给服务s2的服务端;2)s2接受s1端发送过来的源数据data1,以及s1服务的下一个服务调用编号call_id_2,客户端编号user1_id,s2处理data1得到处理后的数据data2;3)服务s2查找其所在服务端服务结构数据库,查找call_id为call_id_2,user_id为user1_id所有行,从而获取下一个调用url为s3_url,以及下一个服务调用编号call_id_3,并通过服务地址s3_url,以网络应用程序接口(webapi)的形式调用s3,且发送数据data2以及用户编号user1_id,下一个服务调用编号call_id_3。ii.单输入多输出形式,如图4所示。服务s2所在服务端维护的服务结构数据库有多行记录,表示该服务调用所调用的服务输出有多个,假设当前客户端分配的编号为:user1_id,s1的服务调用编号为call_id_1,s2的服务调用编号为call_id_2,s3的服务调用编号为call_id_3,s4的服务调用编号为call_id_4,s5的服务调用编号为call_id_5s2所在服务端中的服务结构数据库有如下表所示记录:user_idcall_idnext_call_idnext_service_urluser1_idcall_id_2call_id_3s3_urluser1_idcall_id_2call_id_4s4_urluser1_idcall_id_2call_id_5s5_url整个调用过程如下:1)s1在数据处理结束时,将s1的下一个服务服务调用编号call_id_2、客户编号user1_id以及源数据data1传递给服务s2的服务端;2)s2接受s1端发送过来的源数据data1,以及s1服务的下一个服务调用编号call_id_2,客户端编号user1_id,s2处理data1得到处理后的数据data2;3)服务s2查找其所在服务端服务结构数据库,查找call_id为call_id_2,user_id为user1_id的所有行,从而获取其需要调用的url有s3_url,s4_url,s5_url,以及相应的服务调用编号call_id_3,call_id_4,call_id_5,通过服务地址s3_url,s4_url,s5_url,以网络应用程序接口(wepapi)的形式,分别调用服务s3,s4,s5并发送数据data2以及客户编号user1_id,以及相应的下一个服务调用编号。iii.多输入单输出形式,如图5所示。s2所在服务端维护的服务结构数据库有多行记录,但输出服务调用只有一个,假设当前客户端分配的编号为:user1_id,调用s1的服务调用编号为call_id_1,s2的服务调用编号为call_id_2,s3的服务调用编号为call_id_3,s4的服务调用编号为call_id_4,s5的服务调用编号为call_id_5。s2所在服务端中的服务结构数据库有如下表所示记录:user_idcall_idnext_call_idnext_service_urluser1_idcall_id_4call_id_5s5_url整个调用过程如下:1)sx在数据处理结束时,将各自的下一个服务调用编号call_id_4、客户编号user1_id以及源数据datax传递给服务s4的服务端。(其中x=1,2,3);2)s4接受sx端发送过来的源数据,以及sx的下一个服务调用编号call_id_4,客户编号user1_id,s4处理源数据datax,得到处理后的数据data4。(其中x=1,2,3);3)服务s4查找s4所在服务端服务结构数据库,查找call_id为call_id_4,user_id为user1_id所在的行,从而获取其下一个调用url为s5_url,以及下一个服务调用编号call_id_5,并通过服务地址s5_url,以网络应用程序接口(webapi)的形式调用s5,并发送数据data4以及用户编号user1_id,下一个服务调用编号call_id_5。由于服务的输入数据,都是通过其前一个服务的调用传递的,所以所有的服务的输入源都是单输入,在这里s4服务的运行并不是在s1,s2,s3共同调用下运行,而是由s1,s2,s3各自调用,所以这种多输入单输入方式等同于s1→s4→s5、s2→s4→s5和s3→s4→s5的组合方式。其他形式的组合均由以上几个基本组合形式,最后数据的处理由多个服务组合共同完成。本技术领域的技术人员应理解,本发明可以以许多其他具体形式实现而不脱离本发明的精神与范围。本发明书中所述的只是本发明的基本实施例。凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分推理或者有限的实验可以得到的技术方案,皆应在本发明的权利要求保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1