基于大数据技术的智能包车系统的设计与实现

2019-06-01 10:06马伟涛詹乾鑫黄泳健李蓉黄锵
电脑知识与技术 2019年12期

马伟涛 詹乾鑫 黄泳健 李蓉 黄锵

摘要:随着经济技术的不断发展,大学生对于安全、便捷出行的需求越来越高涨。该文主要介绍基于大数据技术的智能包车系统的设计与实现,该系统以Android为开发语言, MySQL数据库结合PHP等技术完成系统后台开发,开发过程遵循软件开发流程和规范要求。该系统在满足大学生包车出行的日常需求的同时,帮助节省出行时间和费用,同时提高包车负责人安排车辆和路线的合理性。

关键词:大数据;包车系统;Android;PHP

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2019)12-0189-03

开放科学(资源服务)标识码(OSID):

Design and Implementation of Intelligent Chartered Bus System Based on Big Data Technology

MA Wei-tao, ZHAN Qian-xin, HUANG Yong-jian, LI Rong, HUANG Qiang

(School of Computer Science, Guangdong AIB Polytechnic, Guangzhou 511365, China)

Abstract: With the continuous development of economy and technology, the demand for safe and convenient travel for college students is increasing. This paper mainly introduces the design and implementation of intelligent chartered bus system based on big data technology. The system uses Android as the development language, MySQL database and PHP technology are used to complete the background development of the system, and the development process follows the software development process and specification requirements. This system not only meets the daily needs of Chartered travel for college students, but also helps to save travel time and expenses, at the same time, the rationality of arranging vehicles and routes for chartered persons is improved.

Key words: big data; chartered bus system; Android; PHP

1 背景

当今技术领域普遍存在的巨大变化为大数据技术的应用打开了大门,以改善各行业的业务水平并促进经济发展[1]。当前,大数据技术的作用已经提升到一定程度,从信息中提取价值已被证明对各型企业来说都是非常宝贵的,这无疑也为解决交通中存在的问题带来了新思路,并在缓解交通拥堵、改善交通服务等方面已初见成效。

“基于大数据技术的智能包车系统”是基于对大量交通出行数据的采集、存储和分析,志在改善当今在校大学生出行难、出行方式复杂、校园包车情况混乱等问題,解决大学生交通出行的种种困难,实现大学生安全、快捷出行。

2 系统设计

2.1 概要设计

为满足乘客的安全、便捷以及出行方式多样化等需求,“基于大数据技术的智能包车系统”主要包括五个模块,分别是账号管理模块(信息管理)、同乡包车回家模块(包车回家)、同路人拼车模块(同路人)、即时通讯模块(联系通讯)和回家出行方式多样化模块(回家指南),系统结构如图1所示。

1)账号管理模块主要用于账户个人信息管理,用户权限管理,车票订单查询等。学生在经过身份认证后,可自定义头像、昵称、个性签名等;包车人经过身份验证成为包车负责人,即开放包车负责人权限功能,可查看车票购买情况、购票趋势图、用户分布情况等。

2)包车回家模块主要实现包车的整个过程,对于用户来说,其流程为“搜索车票-订购车票-购票成功”;对包车负责人来说,其流程为“用户订票成功-搜集数据形成趋势图显示-后台查询购票信息”。

3)同路人模块志在改善部分用户打车消费过高的局势,通过设计“校园圈”实现同校的用户与用户之间可自主联系并平摊出行费用。

4)联系通讯模块通过即时通讯解决用户与包车负责人的沟通联系问题。

5)回家指南模块为用户提供了大量的出行攻略,西由平时软件智能记录的出行方式和用户自主发帖来获得,用户除了可以查询多样的回家方式,也可作为旅行攻略。

2.2 详细设计

用户需求具体体现在各种信息的收集、更新和查询中,设计的数据库需充分满足各种信息的输入和输出[2]。为实现各功能模块,设计本系统的数据库E-R图如图2所示。

3 系统实现

3.1 用户登录模块与加密

当用户填写完账号和密码后,系统将验证服务端是否正确,如果正确,服务端会返回一个由PHP-JWT生成的access_token给客户端,客户端收到access_token通过Sharedprefences(轻型的数据存储方式)将token储存到文件中,客户端根据access_token去相关接口获取用户详细信息(如权限,姓名,手机等信息)以此进行登录。

用户登录的密码采用的技术是MD5加密,系统将用户的密码经过MD5加密生成若干个字符串,再与系统保存中的MD5值比较,且该密码在数据库中呈现为暗文形式。

$access_token = $payload;

$access_token['scopes'] = 'access_token';

$access_token['exp'] = time() + $this->expire_in;

$tokenData = [

'access_token' => JWT::encode($access_token, $this->token_key),

'token_type' => 'bearer',

'expired' => C('token_expire_in')

];

return $tokenData;

3.2 订购车票模块

系统为用户提供一站式购票服务,用户选择车票后,系统将用户在购票页面上填写的信息通过OKHTTP框架[3]将数据封装成JSON对象并通过Post方式提交到后台服务器,后台服务器将对此数据进行校验、保存,进而生成相应Form(表单)响应给Android前端,Android端根据服务器返回的数据形成可视化订单界面反馈给用户使用。

3.3 智能分析模块

“智能分析”是基于EazeGraph框架所呈现的购票趋势图[4],使用该框架的最佳特性是将后台响应的数据在Android前端转换特性曲线。根据指定车次的购票人数、购票时间等数据在后台数据库MySQL进行统计,分析结果返回给Android前端进行显示。

public void setPieChartData(CrowdRsp chartData) {

Random random = new Random();

Crowd crowd = chartData.getData();

if (crowd.getPicList() != null && crowd.getPicList().size() > 0){

for (Pic pic : chartData.getData().getPicList()) {

int ranColor = 0xff000000 | random.nextInt(0x00ffffff);

mPieChart.addPieSlice(

new PieModel(pic.getStu_role(),

Integer.parseInt(pic.getCount()),

ranColor));

}

mPieChart.startAnimation();

}

}

public void setLineChartData(RecordRsp recordRsp) {

ValueLineSeries series = new ValueLineSeries();

//设置折线图颜色

series.setColor(0xFF56B7F1);

Record record = recordRsp.getData();

if (record.getPic() != null && record.getPic().size() > 0) {

for (Line line : record.getPic()) {

series.addPoint(new ValueLinePoint(line.getBy_time() + "日",

line.getBy_count()));

}

}

}

recordChart.addSeries(series);

recordChart.startAnimation();

3.4同路人模块

用户发布“同路人”信息时,系统将把用户对应的信息POST到后台,后台将会新建数据表来记录该小组成员,同时给该用户绑定一个特定的值来防止用户重复发布,当“同路人”信息完成或取消时,该特定的值就会消失。其他用户在前端页面加入此“同路人”信息,同样将用户信息POST到后台,加入对应的小组成员表,实现记录。

3.5 回家指南模块

指南的收集通过用户自主发帖发享,用户可自主搜索对应的地点,Android 端将会把关键词打包为JSON文件POST到后台PHP文件中,該文件会将输入内容在CMS(Content Management System内容管理系统)中搜索系统统计的相关回家指南数据并返回给前端显示。

3.6 联系通讯模块

即时通讯使用了极光IM 技术,保证消息及时下发、单聊、用户未在线时保存离线消息和基于JPush 的大容量稳定的消息并发能力。用户登录 APP时,也同时登录到 JMessage,登录后即可进行双方的交互沟通。

服务器端使用极光IM推送PHP SDK的JMessage,实现对用户的基本信息,如头像,姓名等的管理。

private void createConversation() {

final String msg = et_input.getText().toString();

if (TextUtils.isEmpty(msg)){

btn_send.setEnabled(true);

return ;

}

Message message = conversation.createSendMessage(new TextContent(msg));

message.setOnSendCompleteCallback(new BasicCallback() {

@Override

public void gotResult(int responseCode, String responseDesc) {

if (responseCode == 0) {

// 消息发送成功

addRightItem(msg);

et_input.setText("");

btn_send.setEnabled(true);

} else {

T.show(ChatMsgActivity.this, getResources().getString(R.string.send_fail));

L.d("send fail = " + responseDesc);

}

}

});

MessageSendingOptions options = new MessageSendingOptions();

options.setRetainOffline(false);

JMessageClient.sendMessage(message);

}

4 结束语

移动互联网、大数据、云计算等技术快速发展,在交通领域的应用快速推广,交通大数据应运而生。本文对当前的大数据及其在大学生群体的智能交通系统中的应用进行分析和实现,旨在以大数据驱动的智能交通系统来改善当前大学生的出行状况。未来将进一步在用户安全性、体验优质化、系统智能化等方面进行改进和提升。

参考文献:

[1] 埃里克·西格尔. 大数据预测(修订版)[M]. 北京: 中信出版集团, 2017.

[2] Gilmore W Jason. PHP與MySQL程序设计[M]. 4版. 北京: 人民邮电出版社, 2011.

[3] 郭霖. Android 第一行代码[M]. 4版. 北京: 中国邮电出版社, 2016.

[4] 任玉刚. Android开发艺术探索[M]. 北京: 电子工业出版社, 2015.

[5] Michael Milton. 深入浅出数据分析[M]. 北京: 电子工业出版社, 2013.

[6] 陆化普, 孙智源, 屈闻聪. 大数据及其在城市智能交通系统中的应用综述[D]. 北京: 清华大学交通研究所, 2015.

【通联编辑:谢媛媛】