一种实时撮合方法

文档序号:6486983阅读:307来源:国知局
一种实时撮合方法
【专利摘要】本发明公开了一种实时撮合方法,包含系统资源管理,状态管理维护,撮合计算等功能模块。系统对用户对象进行数据模型的建模,将建模后的用户对象保存在内存的数据结构中,包含队列,列表,数组等,通过调度算法进行对象的调度转移和状态的变更,并根据撮合计算算法和撮合参数对撮合队列的用户对象进行扫描和匹配的计算。进一步,将撮合计算后的用户对象进行队列状态更新和统计各种撮合动态参数,包含成功率,系统可用资源等动态参数,进行撮合算法和参数的动态调整个用户资源调度以进行下一轮的计算撮合循环。通过实时计算的撮合拼车算法,为实时计算拼车应用系统提供了核心的资源调度和撮合算法。
【专利说明】一种实时撮合方法
【技术领域】
[0001]本发明涉移动通信和软件【技术领域】,特别是指一种实时撮合方法。
【背景技术】
[0002]随着互联网技术、通信技术的发展,特别是智能终端以及系统软件技术的发展,为一种实时撮合方法提供了可行性。
[0003]目前随着城市生活的发展,出租车资源的紧张,以及费用的不断上涨,用户拼车已经成为一个流行的生活方式,而目前的撮合方法并未很好地满足人们的需求,主要基于人工或在网络发布信息,系统非实时进行匹配,出结果的时间较长,或人工进行判断和撮合,常见的场景通常包含一个固定的出发点如用户居住的小区,在用户需求经常变化的情况下不能很好地适应,如用户搬迁到另外一个始发地点的情况下,又需要用户重新等待资源,在整个拼车环节上,仍然存在很多人工步骤,如需要用户进行事先注册和发布信息,非实时进行撮合,用户使用较为繁琐,用户无法提出各种个性化要求,如时间,地点,对方性别等,模式也较单一,无法满足很多实时或临时性场景需求。
[0004]通过移动通讯网络接入的方式,包含语音方式,短信、彩信方式,WAP,WEB,数据客户端的方式接入到系统并提交请求,系统按照云计算的模式提供计算服务,降低了用户端的要求,任何终端都可以采取适宜的方式发出拼车请求,系统处理后将用户提交到系统的计算服务,实现了异构设备不同接入和统一计算,并进行实时或预约方式的撮合计算,实时为用户提供一种方便快捷的实时拼车系统。
[0005]同时,随着硬件和软件技术的发展,大规模并行处理数据技术的成熟,系统对业务和用户对象进行建模,通过自适应算法的方式对用户的需求进行实时的计算和撮合,并根据撮合结果自动调整算法和参数,并通过并行计算的方式,实时处理城市各个地方的拼车需求造成的海量数据,满足人们随时随地的拼车需求。
[0006]有鉴于此,本发明的目的在于提出一种简单易行,实时接入用户,实时计算和匹配用户需求的一种实时撮合方法。

【发明内容】

[0007]从上面所述可以看出,本发明通过系统对用业务流程和户对象进行数据模型建模,实例化用户对象,分配和调度资源到对应的系统数据结构中,进一步,撮合算法扫描数据结构对象,计算匹配的用户,并根据计算结果和用户状态更新用户对象状态,调整下轮计算的算法参数,并将最终撮合结果通知给用户。
[0008]进一步的,通过所提供的一种实时撮合方法为一种拼车业务的发展提供有力保障,满足用户各方要求,提升用户友好体验。
[0009]为实现上述目的,本发明的一个方面提供了一种实时撮合方法,该方法包括:
系统将用户对象以及用户请求和身份等信息通过数据结构进行数据建模,数据模型包括用户信息和拼车参数,包含用户终端号码或用户名,起始地,目的地,时间戳以及用户等待有效期,预约时间,撮合对象性别,人数等参数。
[0010]本发明提供的一种实时撮合方法的一个实施例中,该方法还包括:
系统解析用户请求数据,获取起始地和目的地参数,将用户实例进行初始化后,通过资源调度算法进行分配和调度资源,将用户对象调入到系统的数据结构实例对象,包含等待队列,计算队列,挂起队列,成功队列以及失败队列,并根据撮合计算结果和撮合参数,队列容量以及系统可用资源,调入或调出用户对象,调整队列容量,以满足系统撮合策略。
[0011]本发明提供的一种实时撮合方法的一个实施例中,该方法还包括:
系统端撮合算法扫描计算队列,对每个用户对象,扫描队列中符合始发地和目的地均在系统设定偏差范围或始发地路线重合度在系统设定的偏差范围内的用户,并在全部队列用户完成扫描和匹配后,将成功匹配的用户调度到成功用户队列中,将未成功用户同时达到有效期限的用户移动到失败用户队列,对未成功且未达到有效期限的用户仍然保留在队列等在下一轮的计算和匹配。
[0012]本发明提供的一种实时撮合方法的一个实施例中,该方法还包括:
用户在系统中具备各种状态,系统包含了不同策略的算法和参数,在当次撮合结束后,根据撮合的结果,将成功的用户和超过有效期的用户移出撮合队列并设置和更新用户对象的在系统中的状态,并从用户资源池调度等待用户资源进行下一轮计算,同时,根据撮合结果数据以及系统设定的撮合参数门限,调整撮合算法和参数。
[0013]本发明提供的一种实时撮合方法的一个实施例中,该方法还包括:
系统为成功撮合用户和撮合失败的用户生成系统撮合通知消息,触发对应的用户消息通知流程,通过用户选择的通知方式,包含语音,短信,WEB等方式将结果通知到终端用户,并记载到系统的数据日志。
[0014]本发明提供的一种实时撮合方法的一个实施例中,该方法还包括:
系统的状态机包含了等待状态,撮合计算状态,成功结束状态,超时结束状态,无效用户状态,系统根据用户对象的状态和时间戳,对每次调度和计算后的将用户状态进行更新,不同的状态根据用户和系统的设定可以进行互相转换。
[0015]系统包含不同策略的计算算法,计算和匹配终点在一定范围内的和线路重合度较高的用户,最大成交数是按照以最多成功撮合为目的的算法,尽可能撮合更多用户,需要的时间可能更长,最快撮合是在用户等待有效期内最快撮合用户的算法,发现有满足需求的用户即可完成,而不寻找最优对象,最短距离算法为将距离最近的用户进行匹配,满足最大化的精确匹配,各种不同的算法在撮合过程中根据系统和用户撮合参数以及动态撮合状态数据进行调整,并根据撮合结果对用户资源池的各个用户队列进行调度和用户对象状态的更新,以满足不同场景和用户的需求。
[0016]参数包含用户和系统的撮合参数,用户参数包含拼车人数,性别,等待有效期,撮合数据是计算数据,包含各个队列长度,平均等待时间,撮合成功对数,撮合成功人数,撮合成功率,平均撮合时间,撮合参数包含最大偏离距离等,最大等待时间等,在系统撮合效率低于系统设定门限的情况下,对算法和参数进行动态调整如增加偏移距离和等待时间以尽可能提闻撮合效率和成功几率。
[0017]
具体来说具有以下优点: 自动控制:
系统为在不同状态和阶段的用户对象,生成各种通知时间和消息,控制用户对象的业务流程,触发流程的自动执行而无需人为干预。
[0018]自适应算法:
系统采取自适应方式,获取各种动态和静态的参数数据进行判断,采取不同的计算和调度算法进行计算和资源的调度,自适应满足不同的撮合情况和系统资源,最大化提高撮合效率和利用系统资源。
[0019]实时计算:
系统对收到用户的请求进行实时处理,将用户调度进入队列并按照系统的调度算法和撮合算法实时进行处理和实时撮合,并将撮合结果即时下发到用户,满足了用户的实时拼车的需求。
[0020]并行处理:
为了实时处理大量并发用户的实时请求,算法采取并行处理和计算的方式,充分利用多核心硬件能力和超线程技术,将计算时延尽可能降低,加快用户计算和匹配的数据,相比较传统的拼车撮合计算的串行的计算方式,大大提高程序的实时响应性能。
[0021]
【专利附图】

【附图说明】
[0022]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为系统模块架构示意图。
[0023]图2为系统资源池结构示意图。
[0024]图3为系统业务流程示意图。
[0025]图4为资源调度流程示意图。
[0026]图5为系统撮合流程不意图。
[0027]图6为系统状态机示意图。
[0028]【具体实施方式】
[0029]下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。
[0030]为实现上述目的,提出了一种实时撮合方法。
[0031]以下通过结合附图,对本发明的实施方式进行描述。
[0032]
实现一种实时撮合方法的关键点如下:
数据建模:
系统根据拼车场景的实时计算需求,设计用户拼车对象的数据结构,包含各个用户对象的属性,方法,并将用户对象的各种静态属性信息和动态信息初始化封装到对象的数据结构。
[0033]实例化对象: 对象来源包含短信,彩信,网络(WAP,WEB),语音,通过与移动通信系统的各个核心网元接口和系统数据入口,系统并行获取不同来源的用户数据并对用户对象进行实例化和初始化操作,赋予对象各个属性值和数据。
[0034]实时队列路由:
用户的请求达到系统后,系统根据用户的请求方式和请求数据包含的始发地和目的地信息,将用户的请求路由到不同的系统等待队列中,供撮合系统进行数据调用。
[0035]状态机:
系统维护用户对象的不同阶段的状态以及根据时间,撮合状态进行用户对象状态的转换,根据各种用户状态进行不同的操作以及资源的调度,用户状态包含等待状态,挂起状态,撮合状态,成功状态,失败状态,失败状态又包含了超出有效期和无匹配状态。
[0036]资源池及调度算法:
系统创建包含用户对象的资源池,包含不同状态的用户对象,并维护和管理各个状态的资源队列,根据用户数目,用户等待时间等动态参数以及撮合状态,计算切换调度的关键指标值,包含用户平均等待时间,成功率,用户等待队列长度等参数,将用户对象动态调度到不同的资源队列。
[0037]以满足核心撮合算法的计算要求。
[0038]用户队列管理:
根据用户的状态,系统创建和维护用户等待队列,运行队列,挂起队列,成功队列,失败队列,默认按照FIFO方式维护和管理队列用户对象,并维护和管理用户状态机的状态的转换。
[0039]并行计算:
为提高整个流程的运行速度,系统将流程中可并行处理的流程,进行并行多线程的处理,最大化利用系统平台硬件多核处理功能加快数据处理和撮合的速度和效率。
[0040]自适应算法:
系统核心撮合部分,撮合算法包含最大撮合数,最快撮合,最匹配撮合算法,按照系统撮合算法和上次撮合的状态,如成功率低于门限值,系统则自适应调整算法到倾向成功率的算法,如排队用户过多,则自适应调整到速度倾向的算法。
[0041]地理信息系统:
系统提取队列的数据交给地理信息系统进行位置的转换和计算,获取用户的始发地和目的地的经纬度的各种信息,并可提供路径信息和导航信息给用户作为路径选择的参考。
[0042]
主要功能模块
如图1所示,一种实时撮合方法的模块结构主要包括:
管理配置模块100:
系统的管理和配置功能模块部分,包含用户,业务参数,系统参数配置和管理各种功倉泛。
[0043]数据库101:
提供数据存储和访问的基本功能以及各种基于数据库的各种管理功能,如数据触发器、函数等逻辑功能以及报表系统等。[0044]撮合计算模块102:
系统内负责撮合用户服务需求的功能模块,根据资源调度算法调度的资源,根据用户系统撮合参数对撮合计算队列的用户资源进行计算,撮合系统内用户的拼车需求并输出和保存结果并将结果输出到其他相关的逻辑功能模块。
[0045]自适应算法模块103:
负责系统撮合算法的动态调整,根据用户撮合需求以及系统撮合运行的效率以及撮合结果,系统动态参数,包含等待用户数量,撮合成功率,用户平均撮合时间,撮合人数等动态参数调整撮合算法以及撮合算法参数,撮合计算采取的算法,提高系统的撮合成功率或效率,满足系统和用户的撮合需求。
[0046]日志模块104:
将系统的各种操作的信息记录到系统日志,提供给用户进行查询。
[0047]资源调度模块105:
用户对象作为资源进入系统后由资源调度模块统一进行调度和管理,管理队列的资源,包含队列资源的调入调出,根据核心撮合算法计算结果等动态参数调整撮合参数和调度资源到各队列。
[0048]地理信息系统模块106:
地理信息系统负责将转换文字地址到地图坐标的经纬度数据,并提供地理信息系统的各种地理信息的功能。
[0049]资源管理模块107:
管理和分配资源池的各个队列的资源,获取各个队列的实时资源的状态信息,为资源调度模块提供各种资源数据。
[0050]数据路由模块108:
负责路由不同来源渠道和不同起始地点的用户对象到对应的分布式系统的对应的处理系统和对应的数据队列。
[0051]用户模块109:
负责用户身份验证和安全设置相关的各种功能,对终端用户身份和属性进行鉴权和认证,用户注册以及用户信息维护和管理等功能。
[0052]状态管理模块110:
负责状态机的各个逻辑状态的转换,扫描各队列的用户对象状态和进行状态的转换。
[0053]数据转换模块111:
负责原始的用户数据转换为系统的软件模型实例化对象,并进行对象数据初始化的工作。
[0054]统计分析模块112:
为系统提供各种统计分析功能以及提供各种报表,根据用户的需求,生成和输出各种统计分析以及数据报表。
[0055]数据适配模块113:
根据用户选择的消息接入和输出渠道类型,适配系统的消息到各种对应输出渠道的数据消息格式。
[0056]用户通知模块114: 根据用户请求的有效期以及撮合的最终结果,通过各种方式向用户推送撮合数据,推送方式包含各种终端支持的方式,包含语音,短信,彩信,WEB,客户端消息等。
[0057]系统门户115:
用户登入系统的门户,提供使用系统的界面和承载各种业务流程的载体。
[0058]系统接口模块116:
负责提供各种接口,终端通过接口访问系统以及系统通过接口下发数据,接口模块按照规定的传输协议进行数据传输,将数据发送给终端和接收终端的请求数据。
[0059]其他第三方系统117:
系统周边的各种第三方系统,增强系统的功能,通过接口方式与第三方系统进行数据通讯。
[0060]移动通信网核心网118:
移动通信网络的各种核心网元,包含短信中心,彩信中心,WAP网关,计费系统,CRM系统,BOSS系统等核心网中的各种网元模块,通过各种核心网元提供各种移动通信的各种功能,包含短信上下行,WAP等。
[0061]
图2示为系统资源池结构示意图。
[0062]如图所示,系统资源池结构包含了数据路由,等待队列,运算队列,成功队列和失败队列数据结构。
[0063]数据路由的功能为汇聚和接入通过各种接入方式接入的用户,将用户对象实例和初始化后路由到用户等待队列。
[0064]等待队列为用户对象等待系统进行调度到计算队列之前,作为用户资源,在等待队列等待进入到运算队列进行撮合计算,默认按照先进先出的次序进行调度。
[0065]运算队列为系统进行撮合运算的核心资源队列,系统对运算队列中的用户进行扫描和计算,撮合满足用户和系统要求的用户,并将计算结束后的成功撮合和撮合失败的用户移动到成功队列和失败队列。
[0066]成功队列保存撮合成功的用户对象,系统读取成功队列的用户对象并向其推送成功通知消息。
[0067]失败队列保存撮合失败的用户对象,系统读取失败队列的用户对象并向其推送失败通知消息。
[0068]
图4示为本发明系统调度流程示意图。
[0069]如图所示,系统调度流程为系统为接入到系统和正在撮合计算的用户进行资源调度的流程,包含如下步骤:
1)在每一轮撮合结束后,系统扫描用户等待队列的用户以及撮合计算 队列的用户的最终状态;
2)系统根据计算撮合状态和等待用户状态、系统可用资源等数据,如 可用系统资源(内存等),等待用户数,当前队列长度,成功用户
数,失败用户数等参数,判断撮合状态和资源状态,调度用户资源到对应的队列中;
3)系统选择调度策略和参数,并调度资源到系统运算队列后进行新一轮的撮合计算;
图5示为本发明系统撮合流程示意图。
[0070]如图所示,系统撮合计算流程示意图描述了系统对用户进行撮合的计算流程,包含了如下步骤:
1)调度用户等资源到撮合队列后,系统读取用户和系统端的撮合业务参数;
2)系统对上次撮合的结果数据提取最终结果和状态数据;
3)根据提取的结果数据,根据结果和系统资源等数据调整撮合条件参数以及撮合算法,包含上次撮合成功率,成功人数等动静态参数;
4)对撮合队列的用户进行扫描和计算,计算各个用户之间的始发地和目的地相匹配的用户,撮合其中的用户;
5)系统将满足撮合条件的用户和最终失败的用户,如有效期达到后的用户,不管其最终撮合状态如何,都与成功用户一起移出撮合队列;
6)如还有等待用户,系统再度调度资源到撮合队列,开始下一轮撮合计算,如无,则本次撮合结束,系统监测和等待用户的接入。
[0071]
图6示为本发明系统状态 机示意图。
[0072]如图所示,系统状态机包含了如下状态以及转换方式:
数据汇聚状态:
系统对接入到系统的用户提交的数据进行采集和汇聚的状态。
[0073]等待状态:
进入到系统的用户等待系统进行调度进入到撮合计算队列进行队 列的状态。
[0074]挂起状态:
进入到系统的用户,因为系统调度等原因,用户状态被挂起,挂 起后系统通过激活用户状态后用户仍可进入等待状态。
[0075]撮合状态:
进入到系统的用户对象进入到撮合队列进行撮合计算的状态。
[0076]成功状态:
进入到系统的用户在进行系统的撮合计算后,最终成功与其他用 户匹配和撮合的用户。
[0077]失败状态:
进入到系统的用户在进行系统的撮合计算后,在有效期内未能最 终成功与其他用户匹配和撮合的用户。
[0078]
下面举一个例子来说明本发明拼车的实时撮合方法,如图3所示,该方法实施例中,包括以下步骤:
步骤1:用户接入到系统,请求系统拼车服务进行实时撮合,请求消息中包含起始地和目的地;
步骤2:系统收到用户请求,解析请求消息,对用户进行认证和鉴权,允许合法用户提交请求,系统获取用户始发地和目的地,对未包含经纬度位置信息的位置数据则提交到地理信息系统转换进行数据的转换,转为文本的位置信息到经纬度信息;
步骤3:系统成功解析和转换位置到经纬度数据后,进入等待队列等待系统调度用户进行计算;
步骤4.根据系统调度资源的算法,如满足调度的要求,则将用户调度进入计算撮合队列,否则用户继续等待;
步骤5.系统根据系统撮合策略和用户拼车要求进行撮合计算;
步骤6.系统提取撮合成功的用户,下发撮合通知,对于未成功用户,系统判断其有效期,如未过有效期则用户继续等待下一轮撮合,否则下发失败通知;
步骤7.用户收到与其配对的用户撮合通知消息;
步骤8.用户联系其配对用户进行拼车。
[0079]
本发明的描述是为了示例和说明起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
【权利要求】
1.一种实时撮合方法,其特征在于,系统对用业务流程和户对象进行数据模型建模,实例化用户对象,分配和调度资源到对应的系统数据结构中,进一步,撮合算法扫描数据结构对象,计算匹配的用户,并根据计算结果和用户状态更新用户对象状态,调整下轮计算的算法参数,并将最终撮合结果通知给用户。
2.如权利要求1所述,系统对用业务流程和户对象进行数据模型建模,其特征在于,将用户对象以及用户请求和身份等信息通过数据结构进行数据建模,数据模型包括用户信息和拼车参数,包含用户终端号码或用户名,起始地,目的地,时间戳以及用户等待有效期,预约时间,撮合对象性别,人数等参数。
3.如权利要求1所述,系统将用户对象实例化,分配和调度资源到对应的系统数据结构中,其特征在于,系统解析用户请求数据,获取起始地和目的地参数,将用户实例进行初始化后,通过资源调度算法进行分配和调度资源,将用户对象调入到系统的数据结构实例对象,包含等待队列,计算队列,挂起队列,成功队列以及失败队列,并根据撮合计算结果和撮合参数,队列容量以及系统可用资源,调入或调出用户对象,调整队列容量,以满足系统撮合策略。
4.如权利要求1所述,撮合算法扫描数据结构对象,计算匹配的用户,其特征在于,系统端撮合算法扫描计算队列,对每个用户对象,扫描队列中符合始发地和目的地均在系统设定偏差范围或始发地路线重合度在系统设定的偏差范围内的用户,并在全部队列用户完成扫描和匹配后,将成功匹配的用户调度到成功用户队列中,将未成功用户同时达到有效期限的用户移动到失败用户队列,对未成功且未达到有效期限的用户仍然保留在队列等在下一轮的计算和匹配。
5.如权利要求1所述,根据计算结果和用户状态更新用户对象状态,调整下轮计算的算法参数,其特征在于,用户在系统中具备各种状态,系统包含了不同策略的算法和参数,在当次撮合结束后,根据撮合的结果,将成功的用户和超过有效期的用户移出撮合队列并设置和更新用户对象的在系统中的状态,并从用户资源池调度等待用户资源进行下一轮计算,同时,根据撮合结果数据以及系统设定的撮合参数门限,调整撮合算法和参数。·
6.如权利要求1所述,系统将最终撮合结果通知给用户,并其特征在于,系统为成功撮合用户和撮合失败的用户生成系统撮合通知消息,触发对应的用户消息通知流程,通过用户选择的通知方式,包含语音,短信,WEB等方式将结果通知到终端用户,并记载到系统的数据日志。
7.如权利要求5所述,用户在系统具备不同状态,其特征在于,系统的状态机包含了等待状态,撮合计算状态,成功结束状态,超时结束状态,无效用户状态,系统根据用户对象的状态和时间戳,对每次调度和计算后的将用户状态进行更新,不同的状态根据用户和系统的设定可以进行互相转换。
8.如权利要求5所述,系统包含不同策略的计算算法,其特征在于,系统包含不同策略的计算算法,计算和匹配终点在一定范围内的和线路重合度较高的用户,最大成交数是按照以最多成功撮合为目的的算法,尽可能撮合更多用户,需要的时间可能更长,最快撮合是在用户等待有效期内最快撮合用户的算法,发现有满足需求的用户即可完成,而不寻找最优对象,最短距离算法为将距离最近的用户进行匹配,满足最大化的精确匹配,各种不同的算法在撮合过程中根据系统和用户撮合参数以及动态撮合状态数据进行调整,并根据撮合结果对用户资源池的各个用户队列进行调度和用户对象状态的更新,以满足不同场景和用户的需求。
9.如权利要求5所述,系统撮合算法包含了各种系统和用户参数,其特征在于,参数包含用户和系统的撮合参数,用户参数包含拼车人数,性别,等待有效期,撮合数据是计算数据,包含各个队列长度,平均等待时间,撮合成功对数,撮合成功人数,撮合成功率,平均撮合时间,撮合参数包含最大偏离距离等,最大等待时间等,在系统撮合效率低于系统设定门限的情况下,对算法和参数进行动态调整如增加偏移距离和等待时间以尽可能提高撮合效率和成 功几率。
【文档编号】G06Q50/30GK103544671SQ201210244882
【公开日】2014年1月29日 申请日期:2012年7月16日 优先权日:2012年7月16日
【发明者】顾健 申请人:上海博讯信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1