在中台架构中,咱们每每把一个系统划分为基础能力层和产品服务层。其中,基础能力层聚焦于稳定收敛的业务模型和基础服务自己,不会随着业务和前台产品的调整发生变化,平台产品层则专一于经过流程编排类的技术手段,将基础能力构建成业务的解决方案,解决共性和个性化的问题。前端
基于上面所说的中台架构思想,咱们把物流系统划分位物流基础能力层和物流产品服务层:缓存
本文将从宏观上来分别介绍物流基础能力和物流产品服务,至于微观上对各个系统的设计则会在后续系列文章中介绍。架构
整个电商物流体系包含三个主要流程:用户端流程、商家端流程和公共流程。这三个流程的交互以下图所示并发
这三个流程中能够进一步划分出不一样的业务执行节点,针对这些业务节点,咱们在物流产品服务层定义出业务接口,这些业务接口能够经过扩展点支撑不一样的业务特性,同时,这些业务接口组合起来又造成了一套物流业务流程。异步
上面的说法比较抽象,下面会经过对每一个业务节点的介绍,进一步说明这种设计思路。高并发
物流服务,其实就是一个物流解决方案,好比快递发货、仓配发货、城市配送等等。对于每个物流服务,对应都有不一样的业务场景。好比普通电商直接使用快递发货就能够了,家电等大件商品就可能要仓配发货,而外卖则须要城市配送。咱们把物流服务定义成一个业务接口,前端业务经过不一样的业务场景,传入不一样的参数,调用这个接口会给出一个特定的物流服务,这样一来,咱们把物流服务就收敛到了一个业务接口。同时,不一样的物流服务的运费也是不同的,即便是同一种物流服务,在不一样的送货地址下,也会出现不同的运费,这里咱们也会抽象出一个运费计算的业务接口。spa
在物流地址这块,前端会有不一样的地址管理需求,好比用户手填的地址,根据经纬度保存的地址,根据IP保存的地址。咱们把这些地址需求收敛到一套地址管理的业务接口中,前端只须要传入不一样的参数,就能够很方便的管理地址。设计
下单这个业务节点主要提供物流订单建立的逻辑。不一样场景的物流订单建立经过这个接口进行收敛。举个例子:用户在咱们的电商平台上买完东西支付后,电商系统会发异步消息,物流系统接收后会建立一个普通的物流订单,若是随着业务发展,公司须要对接一些分销商的ERP接口,让他们直接经过ERP同步建立物流订单,这时候就能够复用这个接口,只不过是入参和业务类型变了,内部的建立流程会作一些扩展性调整。3d
发货这个节点和上面其余节点同样,首先,它是一个正常物流流程中必不可少的环节,其次,它的业务玩法不少,除了最简单的直接发货外,还会存在拆单发货、延迟发货、虚拟商品发货等等,所以,咱们会抽象出一个通用的业务接口,经过入参的不一样和流程的扩展,去支撑不一样的发货。cdn
从发货到确认发货,中间包含不一样的业务场景,好比快递发货后,商家须要等待快递员上门取件后,才能确认发货,对于仓配发货,必须等仓库确认收到指令并回传成功后才能确认发货,而城市配送发货,必须等外卖小哥取件后才能确认发货。所以,确认发货也须要抽象出一个业务接口,以便支撑不一样的业务场景。
签收节点目前的业务场景并很少,可是它是一个必要的业务节点,所以也抽象出一个业务接口,以便支撑将来的扩展性。
物流详情目前仅仅是查询,业务场景并很少,可是它是一个必要的业务节点,所以也抽象出一个业务接口,以便支撑将来的扩展性。
基础能力层聚焦于稳定收敛的业务模型和基础服务自己,它为产品服务层提供稳定的原子接口。物流产品服务层的业务节点,映射到物流基础能力层,就变成了4大基础能力:物流订单能力,物流地址能力,物流详情能力,物流服务能力。
物流订单能力定义了物流订单的模型以及物流订单状态机,它会提供建立、修改、拆单、取消、关闭等原子接口,同时负责对订单数据的存储和检索。物流订单能力支撑了下单、发货、确认收货、签收这些业务接口
物流地址能力包含了四级地址库、用户地址、商家地址的数据存储、检索,这些数据经过上层业务接口,为用户提供了丰富的物流地址信息。
物流详情能力定义了物流详情的数据模型,并和不一样的物流商进行对接,将不一样物流商的数据转换成咱们本身的标准数据,这些数据会和平台业务数据(订单号、用户ID等)进行关联,对外提供丰富的物流详情查询接口。
物流服务能力定义了物流服务模型、物流公司模型、运费模板模型,为物流产品服务层的物流服务业务接口以及运费计算提供了支持。
本文从宏观上介绍了基于中台思想的物流系统设计,整个中台架构其实就是把不变的数据模型和常常变的业务模型进行隔离,经过业务流程编排的方式将变化的业务映射到标准的底层模型中。固然,整个物流系统不只仅包含这些宏观设计,还包含了很是多的微观设计,好比业务接口的设计、流程编排设计、高并发高可用设计、缓存设计等等,在后续系列文章的中,咱们将从微观层面逐一介绍这些设计。
更多文章欢迎访问 http://www.apexyun.com/
联系邮箱:public@space-explore.com
(未经赞成,请勿转载)