Responsive image
博碩士論文 etd-0806116-142855 詳細資訊
Title page for etd-0806116-142855
論文名稱
Title
即時推播系統設計與實作
Realtime Push System Design and Implementation
系所名稱
Department
畢業學年期
Year, semester
語文別
Language
學位類別
Degree
頁數
Number of pages
55
研究生
Author
指導教授
Advisor
召集委員
Convenor
口試委員
Advisory Committee
口試日期
Date of Exam
2016-08-26
繳交日期
Date of Submission
2016-09-06
關鍵字
Keywords
HTML5、WebSocket、Apache Kafka、Node.js、LINE、Facebook Messager、Google Cloud Messaging、推播服務
Apache Kafka, Google Cloud Messaging, LINE, Node.js, WebSocket, HTML5, Facebook Messager, Push service
統計
Statistics
本論文已被瀏覽 5697 次,被下載 114
The thesis/dissertation has been browsed 5697 times, has been downloaded 114 times.
中文摘要
推播服務為網際網路一項重要服務,Google的免費推播服務Google Cloud Messaging就是一項推播服務標準介面,另外,一些社群網路軟體,也提供推播的服務,例如:LINE、Facebook messager、Microsoft Skype。然而上述這些服務,並非適合所有的應用,特別是API (Application Programming Interface)常常不符合需要,或者傳遞訊息的長度或型式(如:只允許文字訊息)。所以開發新的推播服務,是有其需求,本論文就是研究如何設計與建置一個推播服務系統。
本論文採用Apache kafka開放軟體做為訊息儲存系統,考慮以web-programming為基礎的API,以達到跨平台的目的。網頁是基於瀏覽器去讀取,所以平台的差異自然是由瀏覽器去處理,加上HTML5轉apk和ipa的工具,無論是要使用瀏覽器、Android或者iOS的App,都是同樣的程式去執行,充分展現跨平台的優點。因此本論文將以Node.js為主軸,連接Apache Kafka和HTML5,完成一個跨平台的即時推播系統介面。
Abstract
Push service is an important Internet service, which has a big capacity buffering system to keep all messages, push engine to forward messages to their receiver, and API (Application Programming Interface) to provide service interface to users. Google GCM (Google Cloud Messaging) is a well-known free push service. The other social network applications, e.g., LINE, Facebook messager, Microsoft skype, have similar push service. However, not all these service can meet requirements of all applications because of constraints in these services, for example, message length and type (multimedia or text only), API, etc.
It may be required to design and implement a customized push service. In this thesis, we develop a push system, which contains a buffering subsystem, push engine and API. With web-based design, it is platform-independent and can run over different operating systems. It guarantees reliability, allows multimedia message, and is real-time. HTML5, Apache Kafka and Node.js are the main tools used in our system. Finally, there are performance comparison illustrated in the experiment report in the thesis.
目次 Table of Contents
論文審定書 i
誌謝 ii
摘要 iii
Abstract iv
目錄 v
圖次 viii
表次 ix
第一章 緒論 1
1.1. 研究動機與目的 1
1.2. 論文架構 2
第二章 研究背景 3
2.1. Google Cloud Messaging 3
2.2. HTML5 4
2.3. JavaScript 5
2.4. Node.js 6
2.4.1. NPM 7
2.4.2. Kafka-node 7
2.5. WebSocket 7
2.5.1. HTTP/1.1 v.s. WebSocket 7
2.5.2. polling v.s. WebSocket 9
2.6. Apache ZooKeeper 11
2.7. Apache Kafka 12
2.7.1. Kafka簡介 12
2.7.2. Kafka架構 13
2.7.3. Kafka特色 14
2.8. JSON 14
第三章 系統設計及架構 15
3.1. 系統需求 15
3.1.1. Server端需求 15
3.1.2. Client需求 15
3.2. 系統架構 17
第四章 系統實作 18
4.1. Producer端 18
4.1.1. Kafka broker開啟刪除權限 18
4.1.2. 增加傳輸上限 19
4.1.3. 列出當前已存在topic 19
4.1.4. 即時動態建立/刪除topic 21
4.1.5. 刪除topic 22
4.1.6. 建立資料格式 22
4.1.7. Socket.io 24
4.2. Consumer端 25
4.2.1. 自動化增加topic 25
4.2.2. 自動化刪除topic 28
4.2.3. 訂閱/取消訂閱 29
第五章 系統成果展示 31
5.1. API應用呈現 31
5.2. 效能比較 37
第六章 結論與未來展望 38
參考文獻 39
附錄A 42
Kafka環境建置與操作 42
Node.js環境建置 43
參考文獻 References
[1] Y. Alghamdi and P. Seeling, "Activity-based cloud sending: Push services for
user device multiplicity," IEEE Consumer Communications and Networking
Conference , 2015.
[2] R. R. Brooks and C. Vutsinas, "Kafka in the academy: a note on ethics in IA
education," IEEE Security & Privacy vol. 4, pp. 50-53, 2006.
[3] M. Doyle. (2011). JSON Basics: What You Need to Know. Available:
http://www.elated.com/articles/json-basics/
[4] K. Goodhope, J. Koshy, J. Kreps, N. Narkhede, R. Park, J. Rao, et al., "Building
LinkedIn's Real-time Activity Data Pipeline.," Data Eng., 2012.
[5] S. K. Gudla, J. Bose, S. Sunkara, and S. Verma, "A unified Push Notifications
service for mobile devices," IEEE Electronics, Computing and Communication
Technologies , 2015.
[6] D. Herman, Effective JavaScript: 68 Specific Ways to Harness the Power of
JavaScript: Addison-Wesley Professional, 2012.
[7] S. Jobs. (2010). Thoughts on Flash. Available:
http://www.apple.com/hotnews/thoughts-on-flash/
[8] A. Kafka. Kafka 0.8.2 Documentation. Available:
http://kafka.apache.org/082/documentation.html
[9] K. Kowal. (2009). CommonJS effort sets JavaScript on path for world
domination. Available: http://arstechnica.com/business/2009/12/commonjs-
effort-sets-javascript-on-path-for-world-domination/
[10] J. Kreps, N. Narkhede, and J. Rao., "Kafka: A distributed messaging system for
log processing.," NetDB, 2011.
[11] A. Kumar and S. Johari, "Push notification as a business enhancement technique
for e-commerce," IEEE Image Information Processing , 2015.
[12] N. Li, Y. Du, and G. Chen, "Survey of Cloud Messaging Push Notification
Service," IEEE Information Science and Cloud Computing Companion, 2013.
[13] P. Li, Y. Chen, T. Li, R. Wang, and J. Sun, "Implementation of Cloud Messaging
System Based on GCM Service," IEEE Computational and Information
Sciences, 2013.
[14] R. Li and X. Luo, "Inspection of Hidden Dangers Based on Cloud Messaging
Push Service," IEEE UIC-ATC-ScalCom, 2015.
[15] X. Lu, Z. Yu, and A. Makarenko. (2015). kafka-node Client for Apache Kafka
v0.8+. Available: https://www.npmjs.com/package/kafka-node
[16] P. Lubbers, F. Greco, and K. Corporation. HTML5 WebSocket: A Quantum Leap
in Scalability for the Web. Available: http://www.websocket.org/quantum.html
[17] G. C. Messaging. (2016). Set up a GCM Client App on Android Available:
https://developers.google.com/cloud-messaging/android/client
[18] C. Mike, Node.js in Action: Manning Publications, 2013.
[19] T. Norris. (2015). Understanding the Node.js Event Loop. Available:
https://nodesource.com/blog/understanding-the-nodejs-event-loop/
[20] G. Wang, J. Koshy, S. Subramanian, K. Paramasivam, M. Zadeh, N. Narkhede, et
al., "Building a replicated logging system with Apache Kafka.," PVLDB, 2015.
[21] Z. Wang, W. Dai, F. Wang, H. Deng, S. Wei, X. Zhang, et al., "Kafka and Its
Using in High-throughput and Reliable Message Distribution," IEEE Intelligent
Networks and Intelligent Systems, 2015.
[22] F. Yang, E. Tschetter, X. L. e, N. Ray, G. Merlino, and D. Ganguli, "Druid: a
real-time analytical data store.," In proceedings of the 2014 ACM SIGMOD
international conference on management of data., 2014.
[23] Y. S. Yilmaz, B. I. Aydin, and M. Demirbas, "Google cloud messaging (GCM):
An evaluation," IEEE Global Communications Conference, 2014.
[24] E. Zeydan, U. Yabas, S. u. S?z?er, and a. r. z. Etemo?lu, "Streaming alarm data
analytics for mobile service providers," IEEE Network Operations and
Management Symposium, 2016.
[25] Y. Zhao, K. Kim, and N. Venkatasubramanian, "Dynatops: A dynamic topic-
based publish/subscribe architecture.," DEBS, 2013.
[26] 郭家寶, Google御用網頁語言Node.js : 一流程式設計師養成精華. 臺北市:
佳魁, 2014.
[27] 陳惠貞, HTML 5.CSS 3 JavaScript jQuery Mobile跨裝置網頁設計. 臺北市:
碁峰, 2013.
[28] 陳會安, JavaScript+jQuery Mobile+Node.js跨平台網頁設計範例教本. 臺北
市: 碁峰, 2014.
[29] 數位新知 and 陳婉凌, HTML5+CSS3+jQuery Mobile輕鬆打造App與行動
網站. 新北市: 博碩, 2014.
[30] 錢逢祥, 蔡政崇, and 楊傑文, Node.js[模組參考手冊]. 臺北市: 松崗, 2015.
電子全文 Fulltext
本電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
論文使用權限 Thesis access permission:自定論文開放時間 user define
開放時間 Available:
校內 Campus: 已公開 available
校外 Off-campus: 已公開 available


紙本論文 Printed copies
紙本論文的公開資訊在102學年度以後相對較為完整。如果需要查詢101學年度以前的紙本論文公開資訊,請聯繫圖資處紙本論文服務櫃台。如有不便之處敬請見諒。
開放時間 available 已公開 available

QR Code