著录项信息
专利名称 | 一种高并发竞争库存的订单处理系统及其处理方法 |
申请号 | CN201310301455.2 | 申请日期 | 2013-07-16 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2013-12-04 | 公开/公告号 | CN103426072A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/00 | IPC分类号 | G;0;6;F;1;7;/;0;0查看分类表>
|
申请人 | 无限极(中国)有限公司 | 申请人地址 | 广东省江门市新会区会城镇七堡工贸城北区三号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 无限极(中国)有限公司 | 当前权利人 | 无限极(中国)有限公司 |
发明人 | 郭世亮 |
代理机构 | 广州知友专利商标代理有限公司 | 代理人 | 李海波;侯莉 |
摘要
本发明公开了一种高并发竞争库存的订单处理系统及其处理方法,包括虚拟库存后台参数设置模块,数据库层存储过程功能模块,应用服务器集群,订单队列监控及动态虚拟库存分仓模块,虚拟库存后台管理模块和虚拟库存监控模块,判断订单处理事务队列中的订单扣减预留仓库存或扣减虚拟仓库存,如果虚拟仓库存足够,选择扣减虚拟仓库存,由虚拟仓选择计数器以轮循方式为每个订单分配虚拟仓,订单根据分配的虚拟仓进行库存扣减操作,扣减库存成功后,同时删除该订单在订单处理事务队列中的相关数据,将该订单创建成功信息返回给用户;本发明动态调整虚拟仓数量及各虚拟仓库存,在现有软硬件资源条件下大幅提升了并发订单处理能力,提高了高并发竞争库存时订单处理效率。
一种高并发竞争库存的订单处理系统及其处理方法\n技术领域\n[0001] 本发明涉及一种订单处理系统,特别涉及一种高并发竞争库存的订单处理系统,还涉及上述订单处理系统的处理方法。\n背景技术\n[0002] 随着互联网飞速发展,互联网已逐渐成为人们生活中重要组成部分,人们生活方式也悄然发生了变化,网上购物、网上订票、网络游戏、网络视频,网络社交等等,已经渗透入人们的日常生活之中。因此,互联网用户呈指数般迅猛增长,这给电商平台运营者带来无限商机,可同时也给运营者们带来严峻的考验,由于出现迅猛增长高并发事务处理请求,传统的应用架构开始变得不适应,甚至有许多大型应用由于无法支持高并发的事务处理能力,系统直接崩溃。\n[0003] 出现上述问题的关键原因在于事务处理的响应速度上出现了瓶颈,特别是高并发竞争库存的订单处理系统中该现象尤为突出。在多张购买相同产品的订单同时竞争库存处理时,为了保证事务处理的一致性,需要进行锁库存处理(行锁),使得多张订单只能串行处理,由于订单处理是串行的,当需要竞争库存处理的订单越来越多时,订单处理的等待队列就越来越长,随着并发订单数量的持续增长,这种高并发竞争库存的订单处理性能瓶颈就逐渐显露出来。举例说明,图1是现有订单处理模式示意图,假设某一时刻有3张产品明细相同的订单,系统处理一张订单的时间为10MS(毫秒),为了确保数据库事务处理的一致性,在多张订单竞争扣减库存操作时必须采用库存排它锁机制(行锁),由于采用了库存排它锁操作,订单事务处理就只能串行处理,显然系统处理3张订单的时间就等于30MS(毫秒)。图2是一般订单处理时序图,其显示了影响并发创建订单的时间为T4+T5+T6+T7+T8(即订单队列中单个订单的排队等待时间),由于订单事务处理等待时间与竞争库存事务处理的排他锁机制有关,因此,如果有一种办法可以减少锁库存的冲突,我们就可以大幅提升系统并发创建订单的处理能力。\n[0004] 目前,业内针对高并发竞争库存的订单处理系统的通用解决方案主要是高速网络+高性能计算机集群+内存数据库。采用这种方案,系统在性能上会有显著提升,然而,这种方案的综合成本也非常高,而且未必能确保系统不会出现瓶颈,因为系统硬件性能本身就存在瓶颈。\n发明内容\n[0005] 本发明的第一个目的在于提供一种成本低、可在现有软硬件资源条件下大幅提升高并发订单竞争库存处理效率的高并发竞争库存的订单处理系统。\n[0006] 本发明的上述目的通过以下的技术措施来实现:一种高并发竞争库存的订单处理系统,其特征在于包括虚拟库存后台参数设置模块、数据库层存储过程功能模块、应用服务器集群、订单队列监控及动态虚拟库存分仓模块、虚拟库存后台管理模块和虚拟库存监控模块,其中,\n[0007] 所述虚拟库存后台参数设置模块用于设置虚拟库存的相关参数;\n[0008] 所述数据库层存储过程功能模块用于实现包括虚拟库存初始化、虚拟库存分仓、虚拟库存定时例行检查、虚拟库存动态调拨与回收的存储过程;\n[0009] 所述应用服务器集群用于接收用户创建的订单请求,然后对订单进行预处理并将订单加入订单处理事务队列;\n[0010] 所述订单队列监控及动态虚拟库存分仓模块用于监控各订单处理事务队列当前处理情况和当前虚拟仓的库存状况;\n[0011] 所述虚拟库存后台管理模块用于实现虚拟库存后台管理,包括虚拟库存初始化、特殊出库入库处理、虚拟库存补货处理、虚拟库存回收处理、虚拟库存例行检查和虚拟库存分仓计划管理等;\n[0012] 所述虚拟库存监控模块用于监控各订单处理事务队列当前处理情况、查询当前系统各虚拟仓的库存状况、订单处理扣减虚拟库存成功率、虚拟库存调拨与回收的频繁度以及异常日志查询与分析等;\n[0013] 以上模块的相互作用与配合,构成了一种高并发竞争库存的订单处理系统,即:虚拟库存系统,启用虚拟库存方案操作过程以及订单处理过程如下:\n[0014] 虚拟库存后台参数设置模块设置虚拟库存相关参数,虚拟库存后台管理模块对虚拟库存进行初始化,完成虚拟库存分仓以及虚拟仓、预留仓库存分配;应用服务器集群中的负载均衡器接收到用户创建订单请求后,将订单请求转发至应用服务器集群中的某台应用服务器,应用服务器接收创建订单请求后,对订单进行预处理,比如促销计算、对订单明细进行排序(订单明细排序的目的在于解决锁定订单行时出现死锁问题)等;将该订单加入订单处理事务队列;如果订单队列监控以及动态虚拟库存分仓模块根据监控结果判断需要对虚拟仓的数量进行调整,则调用数据库层存储过程功能模块的相关存储过程实现对虚拟仓数量的调整;如果虚拟仓不需要调整,则继续对订单队列中的订单进行订单事务处理;\n订单处理事务根据订单明细中是否含有紧缺产品和当前所用系统是否启用了虚拟库存方案,确定当前订单处理是扣减预留库仓库存还是扣减虚拟仓库存,如果虚拟仓库存足够,选择扣减虚拟仓库存,由应用层虚拟仓选择计数器以轮循方式为每个订单分配虚拟仓,订单事务处理根据分配的虚拟仓进行库存扣减操作,扣减库存成功后,同时删除该订单在订单处理事务队列中的相关数据,然后将该订单创建成功信息返回给用户;如果虚拟仓库存不够,选择扣减预留仓库存,如果预留库存足够,扣减库存成功后,同时删除该订单在订单处理事务队列中的相关数据,然后将该订单创建成功信息返回给用户;如果预留库存不够,该订单创建不成功,并返回库存不足信息给用户,同时删除该订单在订单处理事务队列中的相关数据。\n[0015] 本发明将一个货仓库存数据按照库存分配策略划分为一个预留仓和多个虚拟仓,实现多个订单事务并发扣减库存,在现有软硬件资源条件下大幅提升系统的并发订单处理能力,解决了高并发订单竞争库存处理瓶颈的问题,大幅提升了高并发订单库存处理的效率;而且,本发明的实现成本较低。\n[0016] 本发明所述虚拟库存后台参数设置模块所设置的相关参数为安全库存设置、虚拟库存分仓策略的相关参数设置、虚拟库存管理策略的相关参数设置、任务调度停用与启用、调度时间间隔设置等。当虚拟库存后台参数设置好后,虚拟库存系统就可以根据管理者意图来管理和控制虚拟库存系统。\n[0017] 本发明所述数据库层存储过程功能模块包括虚拟库存初始化模块、虚拟库存分仓模块、虚拟库存定时例行检查模块及虚拟库存动态调拨与回收模块,其中,[0018] 所述虚拟库存初始化模块用于系统启用时,预先执行虚拟库存分仓操作;\n[0019] 所述虚拟库存分仓模块用于动态虚拟库存分仓和手动虚拟库存分仓,虚拟库存分仓实现将原有一个货仓(RDC)拆分成一个预留仓和数个虚拟仓,再由虚拟库存系统根据后台参数以及原有货仓(RDC)的实际库存数据按照库存分配策略,将原有货仓(RDC)的库存分配至预留仓和虚拟仓;\n[0020] 本发明所述的库存(也称为虚拟库存)分配策略的分配原则是:先把原有货仓库存数据按照一定比例分成两份(具体比例可以根据业务需要自由设置),第一份库存数分配给预留库存,第二份库存数据平均分配给各虚拟库存仓。\n[0021] 所述虚拟库存定时例行检查模块用于定时例行检查虚拟库存系统各模块的状态,使虚拟库存系统根据各种状态的变化对自身各模块实现动态调整,从而保证虚拟库存系统各模块始终保持最佳运行状态;\n[0022] 所述虚拟库存动态调拨与回收模块包括虚拟库存动态调拨模块和虚拟库存动态回收模块,\n[0023] 虚拟库存动态调拨模块根据虚拟库存调拨规则,检查各虚拟仓库存,如果满足调整要求,系统自动填写调拨申请单,然后将虚拟仓库存进行重新分配,在根据虚拟库存调整单进行调整处理时:先对库存数据进行调减处理,扣减处理完成后再对库存数据进行调增处理,确保扣减处理和调增处理不在同一事务中,以避免事务处理冲突;\n[0024] 虚拟库存动态回收模块根据虚拟库存回收规则,检查各虚拟库存,如果满足合并要求,系统自动填写合并申请单,然后执行虚拟库存回收操作,将虚拟仓库存合并到虚拟预留仓。\n[0025] 本发明所述动态虚拟库存分仓指无需人工干预,由系统通过监控应用层各应用服务器订单处理事务队列的长度,结合后台配置参数进行判断当前系统是处于业务高峰期还是低峰期,然后自动产生虚拟库存分仓调增或调减计划,并执行该计划。\n[0026] 本发明所述手动虚拟库存分仓指由人工干预虚拟库存分仓,决策者根据公司的业务发展策略以及相关数据,如:公司销售预测数据,公司在某段时间有促销计划,或者新产品上市,来判断该时间段是否存在订货高峰期,提前制订虚拟库存分仓计划,并在该订货高峰期前由系统自动实施该计划,以确保系统平稳、快速处理订货业务。\n[0027] 本发明所述虚拟库存后台管理模块包括虚拟库存调拨与回收管理模块、虚拟库存分仓计划管理模块、特殊出入库处理模块及虚拟库存初始化模块,其中,[0028] 所述虚拟库存调拨与回收管理模块用于调拨单/回收单的查询、创建、修改、删除以及执行库存调拨/回收操作等;\n[0029] 所述虚拟库存分仓计划管理模块用于虚拟库存分仓计划管理主要包括虚拟库存分仓计划的查询、创建、修改、删除以及执行虚拟库存分仓计划等操作;\n[0030] 所述特殊出入库处理模块以非订单处理方式扣减库存的处理,即指转储入库与出库、特殊库存移动、产品报废、特别出仓等处理;\n[0031] 所述虚拟库存初始化模块实现把RDC的实际库存数据按照库存分配策略,将RDC库存分配至预留仓和虚拟仓。\n[0032] 本发明的第二个目的在于提供一种上述高并发竞争库存的订单处理系统的处理方法。\n[0033] 本发明的上述目的通过以下的技术措施来实现:一种上述高并发竞争库存的订单处理系统的处理方法,其特征在于包括以下步骤:\n[0034] (1)用户发起创建订单请求;\n[0035] (2)应用服务器集群通过负载均衡器将用户创建的订单请求转发至应用服务器集群中的某台应用服务器,实现应用服务器层高并发订单处理的负载均衡;应用服务器接收创建订单请求后,对订单进行预处理并将该订单加入订单处理事务队列;\n[0036] (3)订单队列监控及动态虚拟库存分仓模块判断该订单明细中是否含有紧缺产品和当前所用系统是否启用了虚拟库存方案,确定当前订单处理是扣减预留库仓库存还是扣减虚拟仓库存,\n[0037] i.如果该订单明细中含有紧缺产品或者没有启用虚拟库存方案,则扣减预留仓库存,转入步骤(4);\n[0038] ii.如果该订单明细中没有含紧缺产品且启用了虚拟库存方案,则扣减虚拟仓库存,转入步骤(5);\n[0039] (4)满足扣减预留库存条件,则扣减预留仓库存;订单的处理事务首先查询并锁定预留库存记录行,对预留库存仓数据进行可用性检查;\n[0040] ⅰ如果预留仓库存足够,则扣减预留仓库存,扣减库存成功后,同时删除该订单在订单处理等待队列中的相关数据,然后将该订单创建成功信息返回给用户,转入步骤(6);\n[0041] ⅱ如果预留库存不够,该订单创建不成功,并返回库存不足信息给用户,同时删除该订单在订单处理等待队列中的相关数据,转入步骤(6);\n[0042] (5)满足扣减虚拟仓库存条件,则扣减虚拟仓库存;订单处理程序读取应用服务器记录的轮循扣减虚拟仓计数器,处理程序根据记数器选择对应的虚拟仓,然后该订单的处理事务首先查询并锁定该虚拟仓库存记录行,对该虚拟仓数据进行可用性检查;\n[0043] i.如果虚拟仓库存足够,订单根据分配的虚拟仓进行库存扣减操作,扣减库存成功后,同时删除该订单在订单处理事务队列中的相关数据,然后将该订单创建成功信息返回给用户,转入步骤(6);\n[0044] ii.如果虚拟仓库存不够,选择扣减预留仓库存,转入步骤(4);\n[0045] (6)完成整个订单处理流程。\n[0046] 与现有技术相比,本发明具有如下显著的效果:\n[0047] 本发明将一个货仓库存数据按照库存分配策略划分为一个预留仓和多个虚拟仓,与现有订单处理系统相比,减少了锁库存冲突,实现多个订单事务并发扣减库存,在现有软硬件资源条件下大幅提升了系统的并发订单处理能力,解决了高并发订单竞争库存处理瓶颈的问题,大幅提升了高并发订单库存处理的效率;本发明实现成本较低,可以广泛应用于大型电子商务以及铁路、航空订票系统等领域。\n附图说明\n[0048] 下面结合附图和具体实施例对本发明作进一步的详细说明。\n[0049] 图1是现有订单处理场景示意图;\n[0050] 图2是现有订单处理序列示意图;\n[0051] 图3是本发明系统组成示意图;\n[0052] 图4是本发明虚拟库存货仓结构图;\n[0053] 图5是本发明订单处理场景示意图;\n[0054] 图6是本发明虚拟库存分仓流程图;\n[0055] 图7是本发明虚拟库存动态调拨与回收流程图;\n[0056] 图8是本发明订单处理流程图。\n具体实施方式\n[0057] 一、虚拟库存总体实现方案\n[0058] 本发明一种高并发竞争库存订单处理系统基于J2EE架构开发实现,数据库采用基于RAC集群的ORACLE 11G,如图3所示,包括虚拟库存后台参数设置模块、数据库层存储过程功能模块、应用服务器集群、订单队列监控及动态虚拟库存分仓模块、虚拟库存后台管理模块和虚拟库存监控模块六大功能模块,其中,\n[0059] 虚拟库存后台参数设置模块300,用于设置虚拟库存的相关参数;\n[0060] 数据库层存储过程功能模块301,实现了虚拟库存相关事务处理的存储过程实体,主要包括虚拟库存初始化、虚拟库存分仓、虚拟库存定时例行检查、虚拟库存动态调拨与回收等存储过程实体;\n[0061] 应用服务器集群302,用于接收用户创建的订单请求,然后对订单进行预处理并将订单加入订单处理事务队列;\n[0062] 订单队列监控以及动态虚拟库存分模块303,用于监控各订单处理事务队列当前处理情况和当前虚拟仓的库存状况;\n[0063] 虚拟库存后台管理模块304:用于实现虚拟库存后台管理,包括虚拟库存初始化,特殊出入库处理,虚拟库存补货处理,虚拟库存回收处理,虚拟库存例行检查和虚拟库存分仓计划管理等;\n[0064] 虚拟库存监控模块305:用于监控各应用服务器实例待处理订单处理队列当前处理情况、查询当前系统各虚拟仓的库存状况、订单处理扣减虚拟库存成功率、虚拟库存调拨与回收的频繁度以及异常日志查询与分析等;\n[0065] 以上六大模块的相互作用与配合,构成了一种高并发竞争库存的订单处理系统,即:虚拟库存系统。以下是启用虚拟库存方案操作过程以及订单处理过程:启用虚拟库存方案操作过程包括以下两个步骤:\n[0066] ⑴通过虚拟库存系统模块300设置虚拟库存相关参数,如安全库存参数设置、虚拟库存分仓策略参数设置、任务调度参数设置等;\n[0067] ⑵通过虚拟库存后台管理模块304对虚拟库存进行初始化,完成虚拟库存分仓以及虚拟仓、预留仓库存分配等操作;\n[0068] 启用虚拟库存方案后订单处理流程如下:\n[0069] 应用服务器集群模块302中的F5负载均衡器接收到用户创建订单请求后,将订单请求转发至某台应用服务器,应用服务器接收创建订单请求后,对订单进行预处理,比如促销计算、对订单明细进行排序(订单明细排序的目的在于解决锁定订单行时出现死锁问题)等;将该订单加入订单处理事务队列;如果订单队列监控以及动态虚拟库存分模块303根据监控结果判断需要对虚拟仓的数量进行调整,则调用数据库层存储过程功能模块301的相关存储过程实现对虚拟仓数量的调整;如果虚拟仓不需要调整,则继续对订单队列中的订单进行订单事务处理;订单处理事务根据订单明细中是否含有紧缺产品和当前所用系统是否启用了虚拟库存方案,确定当前订单处理是扣减预留库仓库存还是扣减虚拟仓库存,如果虚拟仓库存足够,选择扣减虚拟仓库存,由应用层虚拟仓选择计数器以轮循方式为每个订单分配虚拟仓,订单事务处理根据分配的虚拟仓进行库存扣减操作,扣减库存成功后,同时删除该订单在订单处理事务队列中的相关数据,然后将该订单创建成功信息返回给用户;如果虚拟仓库存不够,选择扣减预留仓库存,如果预留库存足够,扣减库存成功后,同时删除该订单在订单处理事务队列中的相关数据,然后将该订单创建成功信息返回给用户;如果预留库存不够,该订单创建不成功,并返回库存不足信息给用户,同时删除该订单在订单处理事务队列中的相关数据。\n[0070] 二、各模块具体功能与实现方式\n[0071] 1、虚拟库存后台参数设置模块\n[0072] 该模块主要用于设置支持虚拟库存解决方案的相关参数,参数设置主要包括:安全库存设置、虚拟库存分仓策略的相关参数设置、虚拟库存管理策略的相关参数设置、任务调度停用与启用以及调度时间间隔设置等。虚拟库存后台设置好后,虚拟库存系统就可以根据管理者意图来管理和控制虚拟库存系统了。\n[0073] 2、数据库层存储过程功能模块\n[0074] 该模块实现了虚拟库存相关事务的处理,主要包括虚拟库存初始化、虚拟库存分仓、虚拟库存定时例行检查、虚拟库存动态调拨与回收等程序模块。\n[0075] 2.1、虚拟库存初始化:该功能用于系统启用虚拟库存解决方案时,预先执行虚拟库存分仓操作。\n[0076] 2.2、虚拟库存分仓:虚拟库存分仓实现将原有货仓(RDC)拆分成一个预留仓和多个虚拟仓(货仓结构如图4),再由虚拟库存系统根据后台参数以及RDC的实际库存数据按照虚拟库存分配策略,将RDC库存分配至预留仓和虚拟仓,虚拟库存定时例行检查:该程序块功能用于S0为预留仓,主要用于处理应急事件,比如虚拟仓库存不够或大宗订货(指订货量很大的订单);S1、S2……SN为虚拟仓,主要用于高并发订单竞争库存处理事务。\n[0077] 虚拟分仓流程如图6所示,虚拟库存分仓分为动态虚拟库存分仓和手动虚拟库存分仓;\n[0078] 2.2.1、动态虚拟库存分仓\n[0079] 动态虚拟库存分仓指分仓操作无需人工干预,由系统通过监控应用层各应用服务器订单处理事务队列的长度,结合后台配置参数进行判断当前系统是处于业务高峰期还是低峰期,然后自动产生虚拟库存分仓调增或调减计划,并立即执行该计划。\n[0080] 动态虚拟库存分仓的实现方式是通过定时任务例行检查动态虚拟库存分仓的满足条件,如有满足增加虚拟库存仓或减少虚拟库存仓的条件,则虚拟库存系统立即执行增加虚拟库存仓或减少虚拟库存仓的操作。\n[0081] 具体实现步骤如下:\n[0082] ⑴定时任务响应,启动虚拟库存分仓调整例行检查程序;\n[0083] ⑵实时收集各应用程序服务器的订单处理等待队列计数;\n[0084] ⑶统计各应用服务器订单处理等待队列计数;\n[0085] ⑷执行动态虚拟库存分仓策略实现检查虚拟库存仓与预留库存仓库存水平,再根据当前的预留仓与虚拟仓的库存水平,与后台设置的虚拟库存分仓条件进行匹配;\n[0086] ⅰ如果满足增加虚拟库存仓的条件,则生成增加虚拟库存分仓调整计划,同时执行增加虚拟库存分仓调整计划并设置虚拟库存系统参数,通知各应用服务器虚拟库存系统参数已变更,完成虚拟库存分仓调整操作。\n[0087] ⅱ如果满足减少虚拟库存仓的条件,则生成减少拟库存分仓调整计划,同时执行减少虚拟库存分仓调整计划并设置虚拟库存系统参数,通知各应用服务器虚拟库存系统参数已变更,完成虚拟库存分仓调整操作。\n[0088] ⅲ如果不满足虚拟库存分仓条件,虚拟库存系统则等待下一个定时任务的响应。\n[0089] 2.2.2、手动虚拟库存分仓\n[0090] 手动虚拟库存分仓指由人工干预虚拟库存分库,决策者公司的业务发展策略以及相关数据,如:公司销售预测数据,公司在某段时间有促销计划,或者新产品上市,来判断该时间段是否存在订货高峰期,提前制订虚拟库存分仓计划,并在该订货高峰期前由系统自动实施该计划,以确保系统平稳、快速处理订货业务。手动虚拟库存分仓的具体步骤如下:\n[0091] ⑴参考相关销售预测数据以及可能分仓调整的相关信息,如:公司销售预测数据,公司在某段时间有促销计划,或者新产品上市等等;\n[0092] ⑵手动创建、修改或者取消虚拟库存分仓调整计划,并设定该计划的执行时间;\n[0093] ⑶定时任务例行检查是否有需要执行的虚拟库存分仓调整计划;\n[0094] ⑷如果当前有需要执行的虚拟库存分仓调整计划,则系统立即执行该虚拟库存分仓调整计划;\n[0095] ⑸设置虚拟库存系统参数;\n[0096] ⑹通知各应用服务器虚拟库存系统参数已变更,完成虚拟库存分仓调整操作。\n[0097] 2.3、虚拟库存定时例行检查模块:用于定时例行检查虚拟库存系统各模块的状态,使虚拟库存系统根据各种状态的变化对自身各模块实现动态调整,从而保证虚拟库存系统各模块始终保持最佳运行状态。\n[0098] 2.4、虚拟库存动态调拨与回收:\n[0099] 2.4.1、虚拟库存动态调拨:\n[0100] 虚拟库存动态调拨是根据虚拟库存调拨规则,检查各虚拟仓库存,如果满足调整要求,系统自动填写调拨申请单,然后将虚拟仓库存进行重新分配,在根据虚拟库存调整单进行调整处理时:系统设计了一种调整策略,先对库存数据进行调减处理,扣减处理完成后再对库存数据进行调增处理,确保扣减处理和调增处理不在同一事务中,以避免事务处理冲突。\n[0101] 2.4.2、虚拟库存动态回收:\n[0102] 虚拟库存动态回收是根据虚拟库存回收规则,检查各虚拟库存,如果满足合并要求,系统自动填写合并申请单,然后执行虚拟库存回收操作,将虚拟仓库存合并到虚拟预留仓。\n[0103] 虚拟库存动态调拨与回收流程如图7所示,具体实现步骤如下:\n[0104] ⑴虚拟库存系统后台每5分钟对虚拟库存的预留仓与虚拟仓的库存水平进行检查;\n[0105] ⑵如果满足虚拟库存回收条件,系统则执行虚拟库存回收处理,在进行回收处理时,为了保证系统数据处理有可追溯性,系统自动为该次回收处理创建合并申请单,然后再将需要合并处理的虚拟仓的库存数据合并至预留仓,同时删除该虚拟仓;\n[0106] ⑶如果满足虚拟库存补货条件,系统则执行虚拟库存补货处理,在进行补货处理时,为了保证系统数据处理有可追溯性,系统自动为该次补货处理创建调拨申请单,然后再进行虚拟库存补货处理;\n[0107] ⑷如果满足虚拟库存仓划拨至预留库存仓库条件,系统则执行虚拟库存划拨至预留库存处理,在进行虚拟库存划拨至预留库存处理时,为了保证系统数据处理有可追溯性,系统自动为该次调拨处理创建调拨申请单,然后再进行虚拟库存划拨至预留库存处理;\n[0108] ⑸如果满足预留库存仓划拨至虚拟库存仓条件,系统则执行预留库存仓划拨至虚拟库存仓处理,在进行预留库存仓划拨至虚拟库存仓处理时,为了保证系统数据处理有可追溯性,系统自动为该次调拨处理创建调拨申请单,然后再进行预留库存仓划拨至虚拟库存仓处理。\n[0109] 3、应用服务器集群\n[0110] 应用服务器集群的主要功能是:负载均衡器向应用服务器集群中每台应用服务器转发用户创建的订单请求,以实现应用服务器层大规模并发订单处理的负载均衡。应用服务器集群接收用户创建的订单请求后,对订单进行预处理并将订单加入订单处理事务队列,一个订单处理事务队列对应一个虚拟仓选择计数器;在本实施例中,应用程序服务器采用JBOSS4.3企业版,服务器操作系统采用REDHAT LINUX 5.6企业版。\n[0111] 4、订单队列监控及动态虚拟库存分仓模块\n[0112] 订单队列监控模块用于监控每个订单的处理过程,具体现实步骤如下:在订单处理应用服务器集群中,我们有多台用于订单处理的应用服务器实例,在每个应用实例中,设计了一个订单处理事务队列和一个虚拟仓选择计数器,当用户发起创建订单请求时,F5将该请求转发至某台应用服务器实例,应用服务器实例接收到创建订单请求后,先对订单进行预处理并将该订单加入至订单处理队列,然后判断该订单是扣预留仓库存还是扣虚拟仓库存,如果是扣虚拟仓库存,由于每个货仓存在多个虚拟仓,我们需要借助虚拟仓选择计数器以轮循的方式为每个订单分配虚拟仓,订单根据分配的虚拟仓进行库存扣减操作,扣减库存成功后,同时删除该订单在订单处理事务队列中的相关数据,然后将该订单创建成功信息返回给用户;如果虚拟仓库存不够时,再选择预留仓扣减库存,如果预留库存不够,则该订单创建不成功,并返回库存不足等信息给用户,同时删除该订单在订单处理事务队列中的相关数据,完成整个订单处理流程。\n[0113] 订单处理流程如图8所示,详细执行步骤如下:\n[0114] (1)用户发起创建订单请求;\n[0115] (2)应用服务器集群通过F5(负载均衡器)将用户创建的订单请求转发至应用服务器集群中的某台应用服务器,实现应用服务器层高并发订单处理的负载均衡;应用服务器接收创建订单请求后,对订单进行预处理并将该订单加入订单处理事务队列;\n[0116] (3)订单队列监控模块判断该订单明细中是否含有紧缺产品和当前所用系统是否启用了虚拟库存方案,确定当前订单处理是扣减预留库仓库存还是扣减虚拟仓库存。\n[0117] i.如果该订单明细中含有紧缺产品或者没有启用虚拟库存方案,则扣减预留仓库存,转入步骤(4);\n[0118] ii.如果该订单明细中没有含紧缺产品且启用了虚拟库存方案,则扣减虚拟仓库存,转入步骤(5);\n[0119] (4)满足扣减预留库存条件,则扣减预留仓库存;\n[0120] 扣减预留仓库存的操作方法如下:\n[0121] 订单的处理事务首先查询并锁定预留库存记录行,对预留库存仓数据进行可用性检查;如果预留仓库存足够,则扣减预留仓库存,扣减库存成功后,同时删除该订单在订单处理等待队列中的相关数据,然后将该订单创建成功信息返回给用户,转入步骤(6)。如果预留库存不够,该订单创建不成功,并返回库存不足信息给用户,同时删除该订单在订单处理等待队列中的相关数据,转入步骤(6)。(5)满足扣减虚拟仓库存条件,则扣减虚拟仓库存;\n[0122] 扣减虚拟仓库存的操作方法如下:\n[0123] 订单处理程序读取应用服务器记录的轮循扣减虚拟仓计数器,处理程序根据记数器选择对应的虚拟仓,然后该订单的处理事务首先查询并锁定该虚拟仓库存记录行,对该虚拟仓数据进行可用性检查;\n[0124] i.如果虚拟仓库存足够,订单根据分配的虚拟仓进行库存扣减操作,扣减库存成功后,同时删除该订单在订单处理事务队列中的相关数据,然后将该订单创建成功信息返回给用户,转入步骤(6);\n[0125] ii.如果虚拟仓库存不够,选择扣减预留仓库存,转入步骤(4);\n[0126] (6)完成整个订单处理流程。\n[0127] 5、虚拟库存后台管理模块\n[0128] 虚拟库存后台管理模块主要包括以下几个功能。\n[0129] 5.1、虚拟库存调拨与回收管理\n[0130] 虚拟库存调拨与回收管理主要包括:调拨单/回收单的查询、创建、修改、删除以及执行库存调拨/回收操作等。\n[0131] 5.2、虚拟库存分仓计划管理\n[0132] 虚拟库存分仓计划管理主要包括虚拟库存分仓计划的查询、创建、修改、删除以及执行虚拟库存分仓计划等操作。\n[0133] 5.3、特殊出入库处理\n[0134] 特殊出入库处理主要指非订单处理方式扣减库存的处理,该功能主要用于如:转储入库与出库,特殊库存移动,产品报废、特别出仓等处理。\n[0135] 5.4、虚拟库存初始化\n[0136] 虚拟库存初始化:实现把RDC的实际库存数据按照虚拟库存分配策略,将RDC库存重新分配至预留仓和虚拟仓。\n[0137] 6、虚拟库存监控模块\n[0138] 虚拟库存监控模块用于监控以下几个方面的内容:\n[0139] 6.1、监控各应用服务器实例待处理订单处理队列当前处理情况;\n[0140] 6.2、查询当前系统各虚拟仓的库存状况;\n[0141] 6.3、订单处理扣减虚拟库存成功率;\n[0142] 6.4、虚拟库存调拨与回收的频繁度;\n[0143] 6.5、异常日志查询与分析;\n[0144] 三、虚拟库存分配和管理策略\n[0145] 虚拟库存分配和管理策略如下\n[0146] 1、各种参数描述\n[0147] 表示每日平均库存;\n[0148] SRDC:表示当前货仓库存总数量;\n[0149] RDC:表示某一货仓;\n[0150] 表示为每日平均库存的可销天数。现在一般为22天。\n[0151] TQ:表示虚拟库存一级安全线Q1可支持销售的天数。现在一般设为2天。λR(λR>1):表示为每日初始化时,虚拟保留库存与单个虚拟库存库的比。通常λR可以设置为\n1.5。\n[0152] λQ:表示虚拟库存一级安全线Q1与每日平均库存 的比。 一般为10%。\n[0153] n:表示虚拟库存库区数量。\n[0154] R%:表示虚拟库存库初始化占例R%:R%与n、λR相关,必须满足[0155] Q1:表示虚拟库存一级安全线,可以理解为最低警戒线。 当TQ=2时,表示以2天的日销售量作为最低安全线。\n[0156] Q2:表示虚拟库存二级安全线。 当TQ=2时,表示保持4天的日销售量作为虚拟库存二级安全线。\n[0157] 2、虚拟库存分仓数量n的设定\n[0158] 根据货仓的库存水平以及业务发展规划,对虚拟库存分仓数量n的设定做如下推导:如果增加约束条件,当实际库存为平均库存时,各虚拟库存均满足虚拟库存一级安全线要求。\n[0159] 即当 时, 所以\n[0160] \n[0161] 得到:\n[0162] \n[0163] 根据实际情况,n最大值为8。\n[0164] 一般情况下,n的取值范围为0、2、3、4、5、6、7、8。\n[0165] 当n=0时,表示不分虚拟库存。\n[0166] 3、预留仓与虚拟仓库存分配策略\n[0167] 根据RDC的实际库存重新分配到n+1(n≥0)个虚拟库存中,n+1虚拟库的设置依次为S0、S1、S2…Sn。S0为虚拟预留库存,用于处理应急事件,S1、S2…Sn为虚拟业务处理库存。\n[0168] 库存分配原则如下:\n[0169] a)把当前RDC所有的实际库存SRDC进行调配;\n[0170] b)虚拟预留库存S0与虚拟业务处理库存的总和 按一定比例进行分配,在虚拟业务处理库存内进行平均分配。\n[0171] i.如果R%(0
法律信息
- 2016-02-17
- 2013-12-25
实质审查的生效
IPC(主分类): G06Q 10/08
专利申请号: 201310301455.2
申请日: 2013.07.16
- 2013-12-04
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-05-04
|
2009-10-15
| | |
2
| |
2008-02-13
|
2006-08-07
| | |
3
| |
2008-07-09
|
2008-01-16
| | |
4
| |
2008-10-01
|
2007-03-30
| | |
5
| |
2013-04-17
|
2013-01-02
| | |
6
| |
2009-07-29
|
2009-01-09
| | |
7
| |
2011-03-30
|
2009-08-11
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |