Giới thiệu chung về kỹ thuật:

Một phần của tài liệu Ứng dụng hát karaoke trên mobile và xây dựng cộng đồng nhạc KAR (Trang 82)

Client và Server truyền dữ liệu với nhau thông qua phương thức POST của giao thức HTTP.

Mỗi gói tin ựược gửi ựi có cấu trúc chung như sau:

<Header> + <Dữ liệu yêu cầu 1> + <Dữ liệu yêu cầu 2> + Ầ

Và mỗi gói tin kết quả về có cấu trúc chung như sau:

<Header> + <Mã Kết quả> + <Dữ liệu trả về 1> + Ầ

Trong ựó:

<Header> : ỘKrMbỢ + <Mã dịch vụ>

ỘKrMbỢ: chuỗi nhận dạng cho hệ thống biết ựó là yêu cầu từ ứng dụng trong cùng hệ thống gửi lên.

<Mã dịch vụ> : lưu trữ mã dịch vụ yêu cầu, có ựộ dài 1 byte

<Mã Kết quả> : có giá trị 1 byte, ựể báo cho client biết server có ựáp ứng ựược yêu cầu không, hoặc là có lỗi xảy ra trong quá trình xử lý yêu cầu. Nếu mã kết quả là 0x00, tức là không có lỗi xảy ra, kèm theo ựó là những dữ liệu trả về cho client, ngược lại, trả về mã lỗi. Chúng ta sẽ mô tả chi tiết về các mã lỗi ở các phần sau.

<Dữ liệu yêu cầu >, <Dữ liệu trả về> : bao gồm các dạng dữ liệu như sau:

int: chiếm 4 byte

string: bao gồm 2 byte ựầu lưu trữ ựộ dài của ựoạn dữ liệu lưu

trữ chuỗi, ựược mã hóa theo ựịnh dạng UTF-8

bytearray: bao gồm 4 byte ựầu lưu trữ ựộ dài của mảng byte,

phần sau là nội dung

Trang 83 Bảng sau mô tả chi tiết về mã các dịch vụ mà KaraServer cung cấp ựể xử lý yêu cầu từ KaraMobile

Tên dịch vụ Mã dịch vụ Mô tả

signup 0x01 dịch vụ yêu cầu hệ thống ựăng ký một thành viên mới

signin 0x02 dịch vụ yêu cầu hệ thống kiểm tra việc ựăng nhập của thành viên bằng việc kiểm tra sự tồn tại của username và password

list 0x03 dịch vụ yêu cầu danh sách những bài hát mới nhất

listhot 0x04 dịch vụ yêu cầu danh sách những bài hát ựược download nhiều nhất

download 0x05 dịch vụ yêu cầu hệ thống trả về nội dung của một bài hát cụ thể

upload 0x06 dịch vụ yêu cầu hệ thống lưu nội dung của tập tin nhạc ựã ựược người dùng upload lên

listowner 0x07 dịch vụ yêu cầu danh sách những bài hát của một user do client gửi lên edituser 0x08 dịch vụ yêu cầu hệ thống cập nhật lại

thông tin của user

editsong 0x09 dịch vụ yêu cầu hệ thống cập nhật lại thông tin của một bài hát

delsong 0x0a dịch vụ yêu cầu hệ thống xóa một bài hát của user

Trang 84 viewsongdetail 0x0b dịch vụ yêu cầu hệ thống gửi về thông

tin chi tiết của một bài hát, bao gồm tất cả các comment cho bài hát ựó

viewuserdetail 0x0c Dịch vụ yêu cầu hệ thống gửi về thông tin chi tiết của một user

addcm 0x0d dịch vụ yêu cầu hệ thống thêm một comment của một user ựối với 1 bài hát nào ựấy. Vì mỗi User chỉ ựược

comment một lần cho 1 bài hát nên nếu yêu cầu thêm vào ựã có trong CSDL thì hệ thống tiến hành thay thế comment ựó với comment mới.

Bảng mã kết quả trả về khi thất bại

Mã lỗi Service Mô tả

0x01 signup đã tồn tại thành viên này 0x02 signin Username không tồn tại 0x03 signin Password không ựúng

0x04 - Dữ liệu bị lỗi trong quá trình truyền

3.3.2. Cu trúc ca các thông ip

Tiếp theo, chúng ta sẽ mô tả chi tiết về cấu trúc tin gửi lên và trả về cho từng dịch vụ

Dịch vụ signup :

Gói tin gửi ựi :

<Header> + <UserName> + <Password> + <UserInfo>

Trang 85 <Header> + 0x00

Dịch vụ signin :

Gói tin gửi ựi :

<Header> + <UserName> + <Password>

Gói tin trả về khi thành công :

<Header> + 0x00 + <UserInfo> + <Upload> + <Level> +

<RegiterDate>

Dịch vụ list và listhot :

Gói tin gửi ựi :

<Header> + <Quantity>

Gói tin trả về khi thành công:

<Header> + <Quantity> + [<MusicId> + <UserPosted> +

<MusicName> + <Composer>]

Dịch vụ download :

Gói tin gửi ựi :

<Header> + <MusicId> + <UserName>

Gói tin trả về khi thành công :

<Header> + <MusicId> + <MusicData>

Dịch vụ upload :

Gói tin gửi ựi :

<Header> + <UserName> + < MusicName > + <Composer> + <MusicType> + < MusicData >

Gói tin trả về khi thành công : <Header> + 0x00

Trang 86

Dịch vụ listowner:

Gói tin gửi ựi:

<Header> + <UserPosted>

Gói tin trả về khi thành công:

<Header> + <Quantity> + [<MusicId> + <MusicName> +

<Composer>]

Dịch vụ edituser:

Gói tin gửi ựi:

<Header> + <UserName> + <Password> + <UserInfo>

Gói tin trả về khi thành công: <Header> + 0x00

Dịch vụ editsong:

Gói tin gửi ựi:

<Header> + <MusicId> + <UserPosted> + <MusicName> +

<Composer> + <MusicType>

Gói tin trả về khi thành công: <Header> + 0x00

Dịch vụ delsong:

Gói tin gửi ựi:

<Header> + <MusicId> + <UserPosted>

Gói tin trả về khi thành công: <Header> + 0x00

Dịch vụ viewsongdetail:

Trang 87 <Header> + <MusicId> + <UserPosted>

Gói tin trả về khi thành công:

<Header> + <MusicId> + <UserPosted> + <MusicName> +

<Composer> + <MusicType> + <Download> + <CountComment> +

[<UserComment> + <CommentDate> + <Comment>]

Dịch vụ viewuserdetail:

Gói tin gửi ựi:

<Header> + <UserName>

Gói tin trả về khi thành công:

<Header> + <UserName> + <UserInfo> + <Upload> + <Level> +

<RegisterDate>

Dịch vụ addcm:

Gói tin gửi ựi:

<Header> + <MusicId> + <UserPosted> + <UserComment> +

<Comment>

Gói tin trả về khi thành công : <Header> + 0x00

Bảng mô tả các biến trong các gói tin gửi ựi và trả về

Tên biến Kiễu dữ liệu Mô tả

UserName string Tên ựăng nhập của user Password string Password ựăng nhập của user UserInfo string Thông tin chi tiết của user

Upload int Số bài hát mà user này ựã ựưa lên

Level int Cấp bậc của user

Trang 88 Quantity int Số lượng bài hát yêu cầu, và số lượng bài

hát trả về, số lượng bài hát trả về sẽ nhỏ hơn số lượng yêu cầu khi số lượng bài hát trong CSDL nhỏ hơn số lượng yêu cầu

MusicId int Mã số bài hát

UserPosted string Tên của user upload MusicName string Tên của bài hát

Composer string Tên của tác giả bài hát MusicType string Thể loại của bài hát MusicData bytearray Dữ liệu của bài hát

Download int Số lượng download của một bài hát

UserComment string Tên của người comment trong một bài hát CommentDate string Ngày comment

Comment string Nội dung của một comment

Trang 89

Chương 4 - Triển khai hệ thống 4.1. Mô hình Deploy Diagram

Hình 11 Ờ Deployment Diagram cho hệ thống

4.3. Trin khai h thng server

Phần KaraServer sẽ ựược biên dịch và ựóng gói thành tập tin .war. Tập tin .war ựó sẽ ựược dùng ựể upload lên server hỗ trợ Tomcat. Chúng ta sẽ tiến hành ựăng ký và triển khai hệ thống tại website http://www.eatj.com/.

đầu tiên, chúng ta ựăng ký một tài khoản miễn phắ. Vì ựây là tài khoản dùng thử nên sẽ có những giới hạn: sử dụng tối ựa 50MB ổ cứng, băng thông truyền dữ liệu 1 tháng tối ựa 3GB, và chỉ ựược phép tạo tối ựa 2 cơ sở dữ liệu.

Sau khi ựăng ký thành công một tài khoản , ở ựây, chúng ta có tài khoản có tên là karaserver, chúng ta bắt ựầu tạo CSDL cho hệ thống bằng cách import file backup .sql lên hệ thống trong phpMyAdmin với tên CSDL là tên ựăng nhập vào hệ thống.

đây là trang chắnh của phần phpMyAdmin sau khi import thành công CSDL lên server, tại ựây chúng ta có thể thao tác dễ dàng với CSDL của mình.

Trang 90 Sau ựó import file .war vào hệ thống, với tên file tạo thành ựường dẫn tới trang chủ như sau : http://karaserver.s155.eatj.com/ +<tên file .war>

Sau khi import file .war thành công, hệ thống sẽ yêu cầu khởi ựộng lại server và hướng dẫn cho chúng ta tới trang chủ của mình.

Trang 91

4.2. Trin khai ng dng client

Ứng dụng KaraMobile chạy trên ựược các loại ựiện thoại có hỗ trợ chuẩn MIDP 2.0, và hiển thị tối ưu nhất trên 2 loại ựiện thoại có ựộ phân giải màn hình 240x320, và 176x220.

Người dùng có thể tải ứng dụng tại ựịa chỉ www.karamobile.net.ms dưới dạng tập tin .jar, và chép vào ựiện thoại di ựộng thông qua thẻ nhớ, dây cáp, cổng hồng ngoại hoặc bluetooth.

Sau khi chép vào ựiện thoại, một số dòng ựiện thoại của Nokia S60, hoặc Sony Ericsson sẽ yêu cầu cài ựặt ứng dụng vào hệ thống; còn lại thì có thể chạy trực tiếp tập tin .jar.

Ở lần chạy ựầu tiên của ứng dụng, người dùng phải ựợi cho ứng dụng khởi tạo thư viện nhạc mặc ựịnh, ứng dụng sẽ chép 2 bài nhạc Yêu em âm thầm (Trúc Hồ) và

Yesterday(Beatles) vào thư viện. Thao tác khởi tạo này chỉ thực hiện duy nhất ở lần

chạy ựầu tiên của ứng dụng sau khi ựược cài ựặt hoặc chép từ máy tắnh sang. Với 2 bài hát mặc ựịnh này, người dùng có thể dùng thử ngay tắnh năng hát Karaoke mà không cần phải truy cập vào mạng, hoặc phải tìm một tập tin .kar ựể import vào thư viện.

Trang 92

Chương 5 - Kết luận, hướng phát triển 5.1. Nhng thiếu sót

KaraMobile

Ớ Ứng dụng hiển thị chưa tối ưu trên thiết bị có ựộ phân giải 128x160, hiện tại chỉ mới hỗ trợ hiển thị tốt ưu trên 2 loại màn hình chuẩn 176x220 và 240x320.

Ớ Phần hát karaoke chỉ có một vài hình nền ựộng, chưa thể hiện ựược nhiều hiệu ứng. Chưa tạo ựược nhiều hứng thú cho người hát.

Ớ Chưa có chức năng chỉnh tông nhạc, tốc ựộ nhạc.

Ớ Thông tin profile của thành viên chưa nhiều. Nên thành viên chưa thể hiện ựược mình trên cộng ựồng.

Ớ Giao diện còn ựơn sơ, chưa có nhiều hiệu ứng chuyển màn hình bắt mắt. Ớ Mật khẩu gửi lên chưa ựược mã hóa.

Ớ Cơ chế paint() trong cấu trúc giao diện của ứng dụng ựang còn ở trạng thái cập nhật liên tục (khoảng 20 lần cập nhật trên một giây), ựiều này gây lãng phắ tài nguyên ựiện thoại và gây ra sự hao tổn pin ựiện thoại. Ớ Dữ liệu bài hát gửi ựi và nhận về còn lớn so với tốc ựộ truyền tải GPRS

hiện nay, và chưa có cơ chế nén dữ liệu ựể tiết kiệm chi phắ truyền tải qua mạng.

KaraAdmin

Ớ Giao diện và thiết kế của trang web cho phần admin chưa ựược bắt mắt Ớ Một số chức năng chưa ựược tiện dụng cho người sử dụng

Ớ Phần thực thi và sử dụng code jsp trong các trang web chưa ựược nhuần nhuyễn

Ớ Không tránh ựược các lỗi về bảo mật dữ liệu trong quá trình thực thi và truy cập dữ liệu

Trang 93

5.2. Hướng phát trin cho tương lai

Ớ Cấu trúc giao diện của ứng dụng sẽ ựược thiết kế lại theo cơ chế khi nào cần thay ựổi dữ liệu hoặc cần cập nhật mới tiến hành cập nhật và vẽ lại màn hình. Giúp tiết kiệm tài nguyên hệ thống và ứng dụng chạy sẽ tiết kiệm pin hơn. Ớ Dữ liệu truyền tải qua mạng sẽ ựược gửi ựi ở dạng nén ựể tiết kiệm chi phắ. Ớ Tăng cường sự bảo mật của ứng dụng, ựảm bảo sự an toàn của thành viên trong

cộng ựồng bằng những biện pháp: mã hóa mật khẩu gửi lên ựể tránh bị ựánh cắp, mã hóa những câu lệnh SQL trong phần truy cập dữ liệu.

Trang 94

Danh mục tài liệu tham khảo

Cu trúc tp tin MIDI/KAR http://www.sonicspot.com/guide/midifiles.html http://www.csie.ntu.edu.tw/~r92092/ref/midi/contents.html http://en.wikipedia.org/wiki/SMPTE_timecode http://sourceforge.net/projects/ptkaraoke/ J2ME

Databases and MIDP

http://developers.sun.com/mobility/midp/articles/databaserms/ J2ME 101, Part 3: Inside the Record Management System

http://www.ibm.com/developerworks/library/j-j2me3/

Core J2MEỎ Technology & MIDP (John W. Muchow, 2001)

JSP/Servlet

Căn bản về JSP (Phạm Hữu Khang) Ờ www.huukhang.com

www.roseindia.net

Core Servlets & JavaServer Pages (Marty Hall) J2ME to Servlet Communication -

http://www.java2s.com/Code/Java/Servlets/J2MEtoServletCommunication. htm

Các ngun khác

Các bài báo về lịch sử của ựiện thoại di ựộng, về GPRS, 3G trên

www.vietnamet.net, www.tudiencongnghe.com

Một phần của tài liệu Ứng dụng hát karaoke trên mobile và xây dựng cộng đồng nhạc KAR (Trang 82)

Tải bản đầy đủ (PDF)

(94 trang)