馬偉濤 詹乾鑫 黃泳健 李蓉 黃鏘
摘要:隨著經(jīng)濟技術的不斷發(fā)展,大學生對于安全、便捷出行的需求越來越高漲。該文主要介紹基于大數(shù)據(jù)技術的智能包車系統(tǒng)的設計與實現(xiàn),該系統(tǒng)以Android為開發(fā)語言, MySQL數(shù)據(jù)庫結合PHP等技術完成系統(tǒng)后臺開發(fā),開發(fā)過程遵循軟件開發(fā)流程和規(guī)范要求。該系統(tǒng)在滿足大學生包車出行的日常需求的同時,幫助節(jié)省出行時間和費用,同時提高包車負責人安排車輛和路線的合理性。
關鍵詞:大數(shù)據(jù);包車系統(tǒng);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 背景
當今技術領域普遍存在的巨大變化為大數(shù)據(jù)技術的應用打開了大門,以改善各行業(yè)的業(yè)務水平并促進經(jīng)濟發(fā)展[1]。當前,大數(shù)據(jù)技術的作用已經(jīng)提升到一定程度,從信息中提取價值已被證明對各型企業(yè)來說都是非常寶貴的,這無疑也為解決交通中存在的問題帶來了新思路,并在緩解交通擁堵、改善交通服務等方面已初見成效。
“基于大數(shù)據(jù)技術的智能包車系統(tǒng)”是基于對大量交通出行數(shù)據(jù)的采集、存儲和分析,志在改善當今在校大學生出行難、出行方式復雜、校園包車情況混亂等問題,解決大學生交通出行的種種困難,實現(xiàn)大學生安全、快捷出行。
2 系統(tǒng)設計
2.1 概要設計
為滿足乘客的安全、便捷以及出行方式多樣化等需求,“基于大數(shù)據(jù)技術的智能包車系統(tǒng)”主要包括五個模塊,分別是賬號管理模塊(信息管理)、同鄉(xiāng)包車回家模塊(包車回家)、同路人拼車模塊(同路人)、即時通訊模塊(聯(lián)系通訊)和回家出行方式多樣化模塊(回家指南),系統(tǒng)結構如圖1所示。
1)賬號管理模塊主要用于賬戶個人信息管理,用戶權限管理,車票訂單查詢等。學生在經(jīng)過身份認證后,可自定義頭像、昵稱、個性簽名等;包車人經(jīng)過身份驗證成為包車負責人,即開放包車負責人權限功能,可查看車票購買情況、購票趨勢圖、用戶分布情況等。
2)包車回家模塊主要實現(xiàn)包車的整個過程,對于用戶來說,其流程為“搜索車票-訂購車票-購票成功”;對包車負責人來說,其流程為“用戶訂票成功-搜集數(shù)據(jù)形成趨勢圖顯示-后臺查詢購票信息”。
3)同路人模塊志在改善部分用戶打車消費過高的局勢,通過設計“校園圈”實現(xiàn)同校的用戶與用戶之間可自主聯(lián)系并平攤出行費用。
4)聯(lián)系通訊模塊通過即時通訊解決用戶與包車負責人的溝通聯(lián)系問題。
5)回家指南模塊為用戶提供了大量的出行攻略,西由平時軟件智能記錄的出行方式和用戶自主發(fā)帖來獲得,用戶除了可以查詢多樣的回家方式,也可作為旅行攻略。
2.2 詳細設計
用戶需求具體體現(xiàn)在各種信息的收集、更新和查詢中,設計的數(shù)據(jù)庫需充分滿足各種信息的輸入和輸出[2]。為實現(xiàn)各功能模塊,設計本系統(tǒng)的數(shù)據(jù)庫E-R圖如圖2所示。
3 系統(tǒng)實現(xiàn)
3.1 用戶登錄模塊與加密
當用戶填寫完賬號和密碼后,系統(tǒng)將驗證服務端是否正確,如果正確,服務端會返回一個由PHP-JWT生成的access_token給客戶端,客戶端收到access_token通過Sharedprefences(輕型的數(shù)據(jù)存儲方式)將token儲存到文件中,客戶端根據(jù)access_token去相關接口獲取用戶詳細信息(如權限,姓名,手機等信息)以此進行登錄。
用戶登錄的密碼采用的技術是MD5加密,系統(tǒng)將用戶的密碼經(jīng)過MD5加密生成若干個字符串,再與系統(tǒng)保存中的MD5值比較,且該密碼在數(shù)據(jù)庫中呈現(xiàn)為暗文形式。
$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 訂購車票模塊
系統(tǒng)為用戶提供一站式購票服務,用戶選擇車票后,系統(tǒng)將用戶在購票頁面上填寫的信息通過OKHTTP框架[3]將數(shù)據(jù)封裝成JSON對象并通過Post方式提交到后臺服務器,后臺服務器將對此數(shù)據(jù)進行校驗、保存,進而生成相應Form(表單)響應給Android前端,Android端根據(jù)服務器返回的數(shù)據(jù)形成可視化訂單界面反饋給用戶使用。
3.3 智能分析模塊
“智能分析”是基于EazeGraph框架所呈現(xiàn)的購票趨勢圖[4],使用該框架的最佳特性是將后臺響應的數(shù)據(jù)在Android前端轉換特性曲線。根據(jù)指定車次的購票人數(shù)、購票時間等數(shù)據(jù)在后臺數(shù)據(jù)庫MySQL進行統(tǒng)計,分析結果返回給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同路人模塊
用戶發(fā)布“同路人”信息時,系統(tǒng)將把用戶對應的信息POST到后臺,后臺將會新建數(shù)據(jù)表來記錄該小組成員,同時給該用戶綁定一個特定的值來防止用戶重復發(fā)布,當“同路人”信息完成或取消時,該特定的值就會消失。其他用戶在前端頁面加入此“同路人”信息,同樣將用戶信息POST到后臺,加入對應的小組成員表,實現(xiàn)記錄。
3.5 回家指南模塊
指南的收集通過用戶自主發(fā)帖發(fā)享,用戶可自主搜索對應的地點,Android 端將會把關鍵詞打包為JSON文件POST到后臺PHP文件中,該文件會將輸入內容在CMS(Content Management System內容管理系統(tǒng))中搜索系統(tǒng)統(tǒng)計的相關回家指南數(shù)據(jù)并返回給前端顯示。
3.6 聯(lián)系通訊模塊
即時通訊使用了極光IM 技術,保證消息及時下發(fā)、單聊、用戶未在線時保存離線消息和基于JPush 的大容量穩(wěn)定的消息并發(fā)能力。用戶登錄 APP時,也同時登錄到 JMessage,登錄后即可進行雙方的交互溝通。
服務器端使用極光IM推送PHP SDK的JMessage,實現(xiàn)對用戶的基本信息,如頭像,姓名等的管理。
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) {
// 消息發(fā)送成功
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 結束語
移動互聯(lián)網(wǎng)、大數(shù)據(jù)、云計算等技術快速發(fā)展,在交通領域的應用快速推廣,交通大數(shù)據(jù)應運而生。本文對當前的大數(shù)據(jù)及其在大學生群體的智能交通系統(tǒng)中的應用進行分析和實現(xiàn),旨在以大數(shù)據(jù)驅動的智能交通系統(tǒng)來改善當前大學生的出行狀況。未來將進一步在用戶安全性、體驗優(yōu)質化、系統(tǒng)智能化等方面進行改進和提升。
參考文獻:
[1] 埃里克·西格爾. 大數(shù)據(jù)預測(修訂版)[M]. 北京: 中信出版集團, 2017.
[2] Gilmore W Jason. PHP與MySQL程序設計[M]. 4版. 北京: 人民郵電出版社, 2011.
[3] 郭霖. Android 第一行代碼[M]. 4版. 北京: 中國郵電出版社, 2016.
[4] 任玉剛. Android開發(fā)藝術探索[M]. 北京: 電子工業(yè)出版社, 2015.
[5] Michael Milton. 深入淺出數(shù)據(jù)分析[M]. 北京: 電子工業(yè)出版社, 2013.
[6] 陸化普, 孫智源, 屈聞聰. 大數(shù)據(jù)及其在城市智能交通系統(tǒng)中的應用綜述[D]. 北京: 清華大學交通研究所, 2015.
【通聯(lián)編輯:謝媛媛】