14.4.2 服务器端功能组件交互设计本文的上一节中对公交实时查询系统服务端进行了功能组件划分,并介绍了各功能组件的作用,接下来选择两个典型的应用场景对功能组件间的交互方式进行阐述。1、用户实时位置采集和聚类分析场景系统进行用户实时位置采集和聚类分析时,服务器端对应组件的交互过程如图 4-3 所示。图 4-3 用户实时位置采集和聚类分析场景组件交互图1)手机客户端按照规定的时间周期,利用其自身的定位功能获取当前所处地点的位置数据,将定位数据上报给服务器端组件——用户位置数据采集组件,用户位置数据采集组件接收客户端定位信息,并按照实现约定的协议解析数据,解析后的数据存入数据库中对应的数据表中。2)服务器端的用户位置数据聚类组件按照约定的时间周期,定期从数据库中抽取最新的用户位置数据,然后使用聚类算法获得公交车所在的公交线路和当前位置,将此结果永久保存到数据库中。3)公交实时数据统计组件按照约定的周期,定期从数据库中读取最新的聚类计算结果,再对聚类分析输出数据进一步统计分析,得到当前各个路段的路况,将路况数据永久保存到数据库中。4)公交历史数据统计组件根据系统需要,按月或按周从数据库中获取这段周期时间内公交车的运行数据,计算出各路段各周期同时段内的道路拥堵情况变化数据,并根据统计结果修正公交历史统计数据,永久存入到数据库中。2、用户查询实时公交出行方案场景在用户查询实时公交出行方案场景中,服务器端对应组件的交互过程如图4-4 所示。 图 4-4 用户查询实时公交出行方案场景组建交互图1)用户从客户端输入出发地点、目的地点等参数,向服务器端提交请求,查询实时的公交出行方案。服务器端出行方案查询接口接收查询请求并转发查询参数至出行方案计算组件。2)用户的查询参数输入到出行方案计算组件后,出行方案计算组件后根据内部的换乘逻辑算法,从数据库中抽取所需数据进行计算,输出一系列可选的公交出行方案,反馈给出行方案查询接口。3)出行方案查询接口接收出行方案计算组件发送来的乘车方案数据后,再根据乘车方案中的公交车次向公交运行状态查询接口发送查询公交实时运行状态信息的请求,此接口接收到请求信息,通过使用公交运行状态计算组件抽取数据库中对应的公交车实时状态数据,并将实时状态数据反馈给出行方案查询接口。4)出行方案查询接口将可选的公交出行换乘方案数据与公交车实时状态数据进行叠加,结合用户设定的偏好设置,按照用户的偏好...