乐马专车手机端,分别包括“乐马专车用户端”,“乐马专车司机端”,“乐马专车商加端”,“乐马专车调度端”四个APP组成。以下会对用户端和司机端的架构进行介绍。
用户端
乐马专车用户端按功能划分,其功能架构图如下。
- 用户管理系统包括用户帐号相关的所有功能,以及基于打车的周边业务都包括在内。
- 订单系统主要承担下单任务以及订单查询功能。订单要分成“即时订单” “预约订单” “接送机订单” “闪送订单”。
- 行程系统主要承担当前活跃中的订单的从开始到结束的整个行程的处理。包括司机接单后前往目的地过程,接到客户后前往目的地过程,以及在这个过程中用户主动修改行程等操作都在这里完成。同时也承担着对订单系统中进行订单查询时,查看订单的行程和车辆历史轨迹等功能。
- IM系统同时为订单系统和行程系统服务。在用户下单成功后,客户与司机可以通过IM系统进行一对一聊天。在订单结束后的一段时间内,用户同样可以在订单系统的历史订单中找到该司机进行后续的沟通。订单在生成成功后,后台服务会自动为该订单开启聊天室,聊天室与订单进行绑定。
乐马专车用户端按逻辑分层划分,其分层架构图如下。
- 基础层主要对网络传输进行封装处理,比如对数据进行加密解密,签名认证等。
- 基础服务层主要对后台服务进行调用的封装,以及实现了长连接的推送服务,实现稳定可靠的推送监听。
- 业务逻辑层,主要推送进行分类处理,其中包括:
- IM推送处理:处理聊天消息的接收后的所有逻辑,包括消息防丢失处理,去重判断,排序处理,已读更新,匹配翻译,数据缓存,通知界面更新等。
- 订单状态推送:主要对用户提包各类订单后,在后台系统进行分派订单过程中的各个状态的处理。其中包括订单下发的分派过程,订单分派后的二次调度处理,数据缓存,通知界面更新等。
- 行程状态推送:主要对当前活跃订单的所有状态推送进行处理。其中包括司机位置的更新,用户及司机在订单执行过程中的操作处理如修改目录地等,以及到达目的地后的支付状态的推送处理,缓存当前处理中的活跃订单的状态及数据,通知界面更新等。
- 订单同步系统:订单同步系统整个APP中最为关键的系统,承担着APP与后台状态的准确同步,以及解决APP在各种异常状态下,都可以有效地回复到正常处理状态的任务。可以理解成为APP的矫正系统。在后面会重点介绍这个系统的实现细节。
- 业务系统实现了所有该业务下的所有界面功能,同时配合下层的系统对当前订单状态进行正常的展现。
司机端
司机端与用户端的架构设计完全一致,但就具体业务实现上有着根本的差别。以订单系统为例,用户端作为订单的下发者。而司机端处于被动接单状态。司机端的订单系统处于长时间的监听订单状态,当订单下发到后台服务后,服务根据订单的位置,以距离,用车习惯,相熟司机等进行逻辑筛选后,生成目标司机,然后对订单下发到目标司机端。
同样司机端也有一个订单同步系统,在处理复杂度上高于用户端。因为司机处理的是多个订单,同时司机交班后对过去绑定车辆的预约订单同样要进行提醒处理。
在后继的博文中,将会简单介绍一下“IM功能的简单搭建”,以及“订单同步系统”。