1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn điện toán đám mây PUSH NOTIFICATION SYSTEM

18 535 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 387,33 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các nhà cung cấp hệ điều hành này hỗ trợ tính năng đẩy tin nhắn về thiết bị thông qua device token của mỗi máy.. Thông thường mỗi ứng dụng giả sử trong cùng một công ty muốn đẩy thông bá

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KHOA HỌC MÁY TÍNH

_ _

TIỂU LUẬN MÔN HỌC:

ĐIỆN TOÁN ĐÁM MÂY

PUSH NOTIFICATION SYSTEM

TP HồChí Minh, tháng 6 năm 2014

Trang 2

LỜI MỞ ĐẦU

Hiện nay xu hướng công nghệ đang chuyển dần từ PC sang điện thoại di động, các ứng dụng ngày càng phát triển nhiều trên smartphone và từ đó cũng có nhiều hệ điều hành support như android, ios, windowphone Các nhà cung cấp hệ điều hành này hỗ trợ tính năng đẩy tin nhắn về thiết bị thông qua device token của mỗi máy Thông thường mỗi ứng dụng (giả sử trong cùng một công ty) muốn đẩy thông báo về máy thì thường làm tính năng riêng biệt đó trong mỗi ứng dụng, điều này sẽ làm lặp đi lặp lại các các chức năng đó “Push notification system” đáp ứng được việc cung cấp dịch vụ đẩy thông báo về các ứng dụng

Hiện tại push notification system chỉ mới nghiên cứu đến mức độ là sơ đồ hệ thống, thiết kế cơ cơ sở dữ liệu và các kỹ thuật liên quan để xây dựng hệ thống này

vì em muốn phát triển nó làm đề tài luận văn sau này

Trang 3

LỜI CẢM ƠN

Lời đầu tiên em muốn bày tỏ sự cảm ơn sâu sắc của mình tới PGS.TS Nguyễn Phi Khứ giảng viên bộ môn Điện Toán Đám Mây, trường Đại học Công Nghệ Thông Tin, ĐHQG – Tp.HCM đã hướng dẫn chúng em cũng như chia sẽ những kinh nghiệm của thầy Trong thời gian học, em đã tiếp thu nhiều kiến thức bổ ích để hoàn thành bài tiểu luận này

Em rất mong nhận được sự đóng góp ý kiến của thầy và các bạn để đề tài có thể hoàn thiện hơn

Em xin chân thành cảm ơn!

Tp Hồ Chí Minh, tháng 06 năm 2014 Học viên: Nguyễn Thị Diễm An

Trang 4

NHẬN XÉT (Của giảng viên)

………

………

………

………

………

………

………

………

………

………

………

………

Giảng viên (Họ tên và chữ kí)

Trang 5

MỤC LỤC

CHƯƠNG 1: TỔNG QUAN VỀ CHƯƠNG TRÌNH 5

1.1 Lý do chọn đề tài 5

1.2 Ý tưởng 5

1.3 Mục tiêu đề tài 5

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 6

2.1 Push notification trên ios 6

2.2 Push notification tren android 7

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH 11

3.1 phân tích yêu cầu 11

3.2 Triển khai hệ thống 11

3.3 thiết kế cơ sở dữ liệu 13

CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 18

4.1 Kế luận 18

4.2 Hướng phát triển 18

Trang 6

CHƯƠNG 1: TỔNG QUAN VỀ CHƯƠNG TRÌNH

1.1 Lý do chọn đề tài

Công nghệ thông tin ngày càng phát triển, và ứng dụng ngày nay chủ yếu xây dựng trên nền điện thoại di động, xu hướng điện thoại thay cho PC ngày càng mạnh mẽ Nhu cầu quảng cáo các ứng dụng của mình ngày càng đòi hỏi, mạng xã hội cũng phát triển mạnh do nhu cầu kết nối người dùng Để người dùng có thể thấy ngay được tin nhắn khi ứng dụng đang tắt hoặc để các nhà phát triển muốn đẩy một thông tin nào xuống máy, hoặc quảng cáo các ứng dụng khác, thì hệ điều hành ios

và android có cung cấp thư viện đẩy thông báo, tuy nhiên số lượng kết nối tới apple

và google là có giới hạn Như vậy làm sao để có thể đẩy lượng thông báo là lớn nhất

và hiệu quả nhất nằm trong giới hạn của google và apple cho phép Và “push notification system” có thể đáp ứng được nhu cầu đó

1.2 Ý tưởng

Từ lý do trên mà em đi xây dựng push notification system với chức năng là

có thể push quảng cáo hoặc push cập nhật ứng dụng (từ addmin)… hoặc push giữa các người dùng từ yêu cầu của server app (server của một ứng dụng nào đó)

1.3 Mục tiêu đề tài

Mục tiêu đề tài là cung cấp một cloud chuyên về push notification cho một công ty hoặc rộng hơn là cung cấp cho nhiều công ty mà muốn sử dụng dịch vụ này

Trang 7

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 Push notification trên ios

Khi ứng dụng bị tắt hoặc không hoạt động mà lúc đó người dùng lại có tin nhắn mới hoặc cái thông báo mới gì đó thì làm sao ứng dung có thể biết được May mắn thay, apple cung cấp chức năng push notification Phần phía máy chủ của ứng dụng có thể làm chức năng này đó là kết nối với apple cloud để đầy thông báo về người dùng Nhưng khi xây dựng hệ thông push notification thì thay vì máy chủ của ứng dụng kết nối với apple cloud thì nó kết nối với hệ thống của mình, và từ hệ thống này mình push thông báo về ứng dụng thông qua apple cloud Các thành phần

có thể gửi qua thông báo bao gồm: Một tin nhắn văn bản ngắn, âm thanh báo, thiết lập một số dữ liệu kèm theo

- Quá trình đẩy thông báo của apple như sau:

- Giải thích quy trình trên:

Trang 8

Ứng dụng muốn nhận được thông báo thì phải đăng ký với ios.

Hệ điều hành xin APNS server một device token, và device token này được gửi về cho ứng dụng

Các ứng dụng sẽ gửi cái device token mà nó nhận được ở trên lên server app của nó

Khi có một số điều gì đó xảy ra liên quan đến ứng dụng thì server app sẽ gửi một thông báo tới dịch vụ thông báo push của App (APN)

APN sẽ gửi thông báo đến thiệt bị của người dùng

- Những điều cần thiết cho việc đẩy thông báo:

Cần một chiếc iphone, hoặc ipad

Có một AppId

Máy phải được kết nối internet

- Nội dung của một thông báo:

Máy chủ có trách nhiệm tạo ra các thông báo Một thông báo bao gồm device token, một payload, và một số bit, byte khác

Máy chủ nên tạo một payload dạng Json Một payload đơn giản như sau: {

"APS":

{

"alert": "Xin chào!",

"sound": "default"

} } Kích thước của payload không được vượt quá 256 byte

2.2 Push notification tren android

GCM (Google Cloud Messaging) là một dịch vụ cho phép gửi dữ liệu từ máy chủ của đển thiết bị hỗ trợ Android của người dùng, và cũng để nhận tin nhắn từ các thiết bị trên cùng một kết nối Dịch vụ GCM xử lý mọi khía cạnh của hàng đợi tin nhắn và gửi tin nhắn đến các mục tiêu ứng dụng Android chạy trên thiết bị mục

Trang 9

GCM là một dịch vụ miễn phí, Giới hạn dữ liệu lên đến 4KB (dữ liễu khá lớn so với

- Đặc điểm chính của GCM:

Nó cho phép các máy chủ ứng dụng của bên thứ ba (server app chằng hạn) để gửi tin nhắn đến các ứng dụng Android của bên thứ ba đó

Bằng cách kết nối và sử dụng máy chủ GCM, ứng dụng có thể nhận tin nhắn Một ứng dụng Android trên một thiết bị Android không cần phải chạy để nhận tin nhắn Hệ thống sẽ đánh thức những ứng dụng Android thông qua phát sóng khi tin nhắn đến, miễn là ứng dụng được thiết lập và có kết nối internet

GCM chỉ đơn giản là đi thông điệp dữ liệu thô nhận thẳng vào ứng dụng Android, trong đó ứng dụng có toàn quyền kiểm soát như thế nào để xử lý nó Ví

dụ, các ứng dụng có thể gửi một thông báo, hiển thị một giao diện tùy chỉnh, hoặc

dữ liệu âm thầm đồng bộ

Nó đòi hỏi các thiết bị chạy Android 2.2 hoặc cao hơn hoặc một trình giả lập chạy Android 2.2 với các API của Google

- Kiến trúc GCM:

Google cung cấp máy chủ kết nối GCM có tin nhắn từ một máy chủ ứng dụng

Trang 10

của bên thứ ba và gửi các tin nhắn đến một ứng dụng Android Hiện tại, Google cung cấp cho các máy chủ kết nối cho HTTP và XMPP

Các máy chủ của hãng thứ ba là một thành phần thực hiện để làm việc với máy chủ kết nối GCM Máy chủ ứng dụng gửi tin nhắn đến một máy chủ kết nối GCM, các enqueues máy chủ kết nối và lưu trữ các tin nhắn, và sau đó gửi nó đến thiết bị khi thiết bị đang trực tuyến

Để nhận tin nhắn GCM, ứng dụng này phải đăng ký với GCM và có được một

ID đăng ký Nếu đang sử dụng XMPP (CCS) máy chủ kết nối, ứng dụng client có thể gửi tin nhắn "ngược dòng" lại cho máy chủ kết nối

- Gửi tin nhắn, đây là chuỗi các sự kiện xảy ra khi máy chủ ứng dụng gửi một thông điệp:

Các máy chủ ứng dụng gửi một thông điệp đến các máy chủ GCM

Đưa vào hang đợi và lưu trữ các tin nhắn trong trường hợp thiết bị đang ẩn

Khi điện thoại được trực tuyến, Google sẽ gửi tin nhắn tới các thiết bị

Trên thiết bị, hệ thống chương trình phát sóng tin nhắn tới các ứng dụng Android với các điều khoản thích hợp, để chỉ những ứng dụng Android nhắm mục tiêu nhận được tin nhắn.điều này đánh thức các ứng dụng Android lên Ứng dụng Android không cần phải được chạy trước để nhận được thông báo( có nghĩa là ứng dụng bị tắt cũng có thể nhận được tin nhắn, miễn sao có kết nối internet)

Ứng dụng Android xử lý thông báo theo cách nó muốn

Một ứng dụng Android có thể hủy đăng ký GCM nếu nó không còn muốn nhận tin nhắn

- Một số thông số trong tin nhắn: (dạng HTTP)

registration_ids: một mảng các thiết bị mà được nhận tin nhắn ít nhất là 1 và nhiều nhất là 1000

collapse_key: chuỗi tùy ý để phân nhóm các tin nhắn dạng bị ẩn, và chỉ có tin

Trang 11

nhắn cuối cùng được gửi đến client, việc này tránh gửi quá nhiều khi điện thoại hoạt động trở lại

data: sử dụng dạng đối tượng json Ví dụ: "data":{"score":"3x1"}

delay_while_idle: nếu có, chỉ ra rằng tin nhắn sẽ không được gửi ngay nếu thiết

bị bị idle, máy chủ sẽ đợi cho thiết bị hoạt đông trở lại và sau đó tin nhắn cuối củng của collapse_key sẽ được gửi đến ngay

time_to_live: thời gian mà tin nhắn được lưu trữ trong GCM, mặc định là 4 tuần restricted_package_name: tên gói ứng dụng Khi thiết lập, tin nhắn sẽ được gửi đến ID đăng ký phù hợp với tên gói Tùy chọn

dry_run: Nếu có, cho phép các nhà phát triển để kiểm tra yêu cầu của họ mà không thực sự gửi một thông điệp Tùy chọn

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH

Trang 12

3.1 phân tích yêu cầu

Danh sách các yêu cầu:

- Thiết kế và xây dựng cơ sở dữ liệu (có thể là slq hoặc noslq)

- Xây dựng api để cung cấp cho client, và api cung cấp cho server app

- Xây dựng trang admin để quản lý vấn để push

- Xây dựng “lookup api queue to DB” để lưu thông tin về client

- Xây dựng “lookup queue out to DB” để lưu report từ google cloud và apple cloud

- Xây dựng schedule job để thăm dò từ DB xem đã tới thời gian push chưa

- Xây dựng các hang đợi “Api queue in”, “google queue in”, “apple queue in”, “queue out”

3.2 Triển khai hệ thống

Hệ thống được triển khai như mô hình sau đây:

Trang 13

Giải thích vể mô hình push notification:

- Push theo yêu cầu từ web admin

 Client gửi thông tin về thiết bị như device token (để push), sex, age, level (những thông tin làm tiêu chí push) … sau khi gửi lên server qua API mà server cung cấp, thì dữ liệu sẽ được đưa vào hang đợi “Api queue in” khi đó ở khu vực Web admin sẽ có một woker “Lookup api queue to DB” làm nhiệm vụ lấy data

từ “Api quque in” và lưu vào DB

Trang 14

 Từ trang web admin, sẽ có các yêu cầu như vào thời điểm A, push cho những người chơi game B theo các tiêu chí như độ tuổi, gioi tính, level … với nội dung C nào đó Lúc này có một con “schedule job” làm nhiệm vụ là thăm dò DB xem yêu cầu của admin đã tới giờ chưa, nếu tới giờ rồi nó sẽ lấy những thông tin liên quan để push thông báo xuống client Thông tin cần thiết như là key app, device token, nội dung, tiêu chí push… khi nó lấy thông t in lên rồi, nó sẽ tạo data

và đưa vào hang đợi “google queue in” hoặc “apple queue in” tùy vào device thuộc loại nào Sau đó sẽ có 1 con woker làm nhiệm vụ lấy data từ hang đợi “google queue in” và “apple queue in” và đẩy lên google cloud và apple cloud

 Sau khi gửi lên apple cloud và google cloud, nó sẽ push tin nhắn về device Và có report liên quan, nếu thất bại thì dữ liệu sẽ đưa và queue out và save vào DB dể report bao nhiêu thành công, bao nhiêu thất bại

- Push theo yêu cầu từ server app

 Khi server app gửi tin nhắn cần push, thì nó phải có đầy đủ thông tin push key app, android hay ios, device token, nội dung… khi đó thông tin này sẽ được đưa vào hang đợi “google queue in” và “apple queue in”, từ đó có 1 woker làm nhiệm vụ đẩy nó lên google cloud và apple cloud Từ đó client sẽ nhận được tin nhắn và có report thông báo có bao nhiêu thành công và thất bại

3.3 thi t k c s d li u ết kế cơ sở dữ liệu ết kế cơ sở dữ liệu ơ sở dữ liệu ở dữ liệu ữ liệu ệu

Bảng application

ios_keystore_enterprise_production Longtext

ios_keystore_enterprise_dev Longtext

ios_keypass_enterprise_production String

Trang 15

ios_keypass_enterprise_dev String

Bảng ApplicationUser

Bảng Device

Trang 16

Bảng DeviceReport

Bảng DeviceReportDetail

Bảng PushSchedule

Bảng User

Trang 17

Tên cột Kiểu dữ liệu

CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

4.1 Kế luận

Hệ thống này em muốn phát triển lên thành luận văn nên em chỉ mới xây dựng được mô hình hệ thống, thiết kế được cơ sở dữ liệu dạng mysql

Tìm hiểu các kỹ thuật liên quan để xây dựng hệ thống như spring framework, rabbitmq, javaPns, GCM, hibernate framework, các woker…

Em mong muốn được sự góp ý của thầy về hệ thống này để có thể đáp ứng được tiêu chuẩn của một luận văn thực sự

Trang 18

4.2 H ướng phát triển ng phát tri n ển

Push notification system hiện đang con dở dang, còn phải hoàn thiện hết danh sách yêu cầu đặt ra như:

- Xây dựng api để cung cấp cho client, và api cung cấp cho server app

- Xây dựng trang admin để quản lý vấn để push

- Xây dựng “lookup api queue to DB” để lưu thông tin về client

- Xây dựng “lookup queue out to DB” để lưu report từ google cloud và apple cloud

- Xây dựng schedule job để thăm dò từ DB xem đã tới thời gian push chưa

- Xây dựng các hang đợi “Api queue in”, “google queue in”, “apple queue in”, “queue out”

Ngày đăng: 19/05/2015, 21:14

HÌNH ẢNH LIÊN QUAN

Bảng application - Tiểu luận môn điện toán đám mây PUSH NOTIFICATION SYSTEM
Bảng application (Trang 14)
Bảng ApplicationUser - Tiểu luận môn điện toán đám mây PUSH NOTIFICATION SYSTEM
ng ApplicationUser (Trang 15)
Bảng DeviceReport - Tiểu luận môn điện toán đám mây PUSH NOTIFICATION SYSTEM
ng DeviceReport (Trang 16)

TỪ KHÓA LIÊN QUAN

w