馬偉濤 詹乾鑫 黃泳健 李蓉 黃鏘
摘要:隨著經濟技術的不斷發展,大學生對于安全、便捷出行的需求越來越高漲。該文主要介紹基于大數據技術的智能包車系統的設計與實現,該系統以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.
【通聯編輯:謝媛媛】