TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI : ỨNG DỤNG ĐIỆN TOÁN ĐÁM
MÂY XÂY DỰNG KHO ỨNG DỤNG
BKStore CHO CÁC THIẾT BỊ SỬ DỤNG HỆ
ĐIỀU HÀNH ANDROID
Sinh viên thực hiện : Lê Đình An
Lớp CNPMA – K51
Giáo viên hướng dẫn: ThS Hoàng Anh Việt
HÀ NỘI 5-2011
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Lê Đình An
Điện thoại liên lạc 0988416079 Email:
Lớp: CNPMA Hệ đào tạo: Chính qui
Đồ án tốt nghiệp được thực hiện tại:
Thời gian làm ĐATN: Từ ngày 20 /02/2011 đến 20 /05/2011
2. Mục đích nội dung của ĐATN
• Tìm hiểu và xây dựng thành công kho ứng dụng cho các thiết bị di động sử dụng hệ
điều hành Android với đầy đủ chức năng của kho ứng dụng như có thể truy cập
trên điện thoại, cho phép nhà phát triển tải ứng dụng được dễ dàng và người sử
dụng có thể mua, tải ứng dụng về thông qua các hình thức thanh toán quốc tế …
• Ứng dụng điện toán đám mây trong quá trình xây dựng kho ứng dụng nhằm tận
dụng những điểm mạnh của công nghệ.
• Tìm hiểu và tích hợp thanh toán quốc tế cho kho ứng dụng
3. Các nhiệm vụ cụ thể của ĐATN
• Tìm hiểu về kho ứng dụng, cơ chế, chức năng cách vận hành của kho ứng dụng
• Tìm hiểu về điện toán đám mây, nền tảng Google App Engine cho Python để xây
dựng ứng dụng web . Sử dụng Web service để trao đổi dữ liệu giữa GAE với
Android theo định dạng XML-RPC
• Tìm hiểu và xây dựng ứng dụng trên nền tảng Android
• Tìm hiểu thanh toán quốc tế trong thương mại điện tử, các cổng thanh toán trực
tuyến. Tích hợp Paypal vào Android
• Cuối cùng là xây dựng thành công kho ứng dụng theo chu trình xây dựng phần
mèm của ngành cộng nghệ phần mềm.
4. Lời cam đoan của sinh viên:
Tôi – Lê Đình An - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự
hướng dẫn của ThS Hoàng Anh Việt
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ
công trình nào khác.
Hà Nội, ngày 20 tháng 5 năm 2011
Tác giả ĐATN
Lê Đình An
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo
vệ:
Hà Nội, ngày 27 tháng 5 năm 2011
Giáo viên hướng dẫn
ThS Hoàng Anh Việt
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Trong báo cáo này, NV sẽ trình bày toàn bộ các bước ứng dụng điện toán đám mây để xây
dựng kho ứng dụng BKStore cho các thiết bị sử dụng hệ điều hành Android. Báo cáo được
chia làm 4 chương với nội dung như sau :
• Chương 1 : Đưa ra tổng quan đề tài gồm mô tả bài toán và đặt vấn đề cho bài toán.
Trong chương 1, NV sẽ giới thiệu về bài toán, đưa ra vấn đề, các thông tin kèm
theo làm lý do để ra đời bài toán.
• Chương 2 : NV sẽ trình bày về cơ sở lý thuyết, các phương pháp tiếp cận bài toán.
Trong mục phương pháp tiếp cận, sẽ trình bày cả hướng giải quyết vấn đề, vận
dụng các công nghệ để xây dựng bài toán. Phần tiếp theo của chương, NV sẽ trình
bày cơ sở lý thuyết của các công nghệ đã đưa ra ở phần trước.
• Chương 3 : NV sẽ trình bày về mô hình kho ứng dụng đề xuất. Trong chương này,
sẽ trình bày chi tiết từ kiến trúc hệ thống đến các phân tích, thiết kế để tiến đến cài
đặt hệ thống. Đây là phần chính của báo cáo này.
• Chương 4 : Chương này sẽ đề cập đến cài đặt và một số kết quả đạt được của hệ
thống kho ứng dụng BKStore. Phần cài đặt sẽ đưa ra những module chính cần cài
đặt, và những vấn đề quan trọng cần giải quyết. Phần các kết quả đạt được có đưa
ra một số kiểm thử và một số kết quả thu được sau khi cài đặt thành công hệ thống
Ngoài các chương được trình bày ở trên, thì báo cáo còn có các phần mở đầu giởi thiệu về
báo cáo cũng như đề tài, phần kết luận để tổng kết vấn đề.
ABSTRACT OF THESIS
In this report, the thesis author will be presented through the entire apply cloud computing
to build BK Store for devices using the Android operating system. The report is divided
into four chapter with the following contents :
• Chapter 1: Getting topics include an overview describing the problem and put the
issue to the problem. In Chapter 1, the thesis author will discuss the problem, raised
the issue, together with information as a reason for these problems.
• Chapter 2: The thesis author will be presented the theoretical basic, the approach to
the problem. In the approach, will present the user solve the problem, apply the
technology to build the problem. The next section of the chapter, the thesis author
presents the theoretical basic of the technology offered in the previous section.
• Chapter 3: The thesis author will be presented the model proposed application store.
In this chapter, will present detail from architecture to system analysis and design to
proceed to install the system. This is the main part of this report.
• Chapter 4: This chapter will cover installation and some of the results archieved
BKStore. Installation section will make the module to be installed, and the
important issues to be addressed. Part of the results achieved have made some test
and some results obtained after successful installation system.
In addition to the program presented above, there are reports of the opening introduction to
the report as well as the subject, the conclusion to summarize problem.
Mục lục
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 4
Danh mục các bảng 7
Danh mục các hình 8
Danh mục các từ viết tắt và thuật ngữ 9
Mở đầu 10
4.2 Kết quả đạt được và thử nghiệm: 62
4.2.1 Các kết quả đạt được : 62
65
66
4.2.2 Một số kết quả kiểm thử : 67
TÀI LIỆU THAM KHẢO 72
Danh mục các bảng
Bảng 1-1 : So sánh giữa các kho ứng dụng 18
Bảng 3-2 : Danh sách Use case 36
Bảng 3-3 : Mô tả use case Register 37
Bảng 3- 4: Mô tả use case Login 37
Bảng 3-5: Mô tả usecase View List App 38
Bảng 3-6: Mô tả use case View Detail App 38
Bảng 3-7 : Mô tả use case Search 39
Bảng 3-8 : Mô tả use case Buy/Pay 39
Bảng 3-9 : Mô tả use case Download 40
Bảng 3-10: Mô tả use case Add Application 40
Bảng 3-11 : Mô tả use case View Own App 41
Bảng 3-12 : Bảng App 43
Bảng 3-13 : Bảng Device 43
Bảng 3-14: Bảng Version 43
Bảng 3-15 : Bảng Language 44
Bảng 3-16 : Bảng Country 44
Bảng 3-17: Bảng Role 44
Bảng 3-18 : Bảng User 44
Bảng 3-19 : Bảng Customer 45
Bảng 3-20 : Bảng Developer 45
Bảng 3-21 : Bảng Customer_App 46
Bảng 3-22 : Bảng AppComment 46
Danh mục các hình
Hình 1-1 : Số lượng ứng dụng của các kho ứng dụng tháng 3/2011 13
Hình 1- 2: Lợi nhuận thu được của các kho ứng dụng trong 2 năm 2009/2010 14
Hình 1- 3:Lợi nhuận dự kiến thu được của các kho ứng dụng đến 2014 15
Hình 4-4:Cấu trúc cài đặt hệ thống 56
Hình 4-5: Cấu trúc dữ liệu của DataStore 57
Hình 4-6: Cấu trúc của XML-RPC 58
Hình 4-7:Định dạng của XML- RPC 59
Hình 4-8: Cài đặt phân tích chuỗi XML nhận được 60
Hình 4-9:Sơ đồ Parallel Payment 61
Hình 4 - 10:Màn hình hiển thị quá trình thanh toán bằng Paypal 62
Hình 4-11: Trang chủ của Web Portal 63
Hình 4 - 12:Giao diện kho ứng dụng trên SamSung Galaxy Mini 64
Hình 4 -113: Danh sách ứng dụng theo loại Game trên SamSung Galaxy Mini 65
Hình 4 - 14:Chi tiết ứng dụng trên SamSung Galaxy Mini 66
Danh mục các từ viết tắt và thuật ngữ
GAE Google App Engine
PaaS Platform as a Service
SaaS Software as a Service
IaaS Infrastructure as a Service
DB Database
App Application
GUI Graphical user interface
MPL Mobile payments library
MECL Mobile Express Checkout Library
NV Người viết luận văn
Mở đầu
1.Lời nói đầu
Di động và điện thoại thông minh đang trong thời kì phát triển nở rộ, trong đó
mảng ứng dụng cho điện thoại thông minh đang trong thời kì phát triển mạnh
mẽ nhất từ trước tới nay, là tâm điểm của sự chú ý thế giới công nghệ trên toàn
thế giới.Hiện tại các tập đoàn lớn, các công ty và thậm chí là các tổ chức,cá nhân
đang đầu tư rất mạnh mẽ cho ngành công nghệ phần mềm, nội dung số cho điện
thoại di động. Các kho ứng dụng trở thành một phần quan trọng trong sự phát
triển nở rộ của ngành công nghệ phần mềm phát triển các ứng dụng cho điện
thoại di động, mang lại nhiều lợi nhuận cho công ty sở hữu nó, các hãng điện
thoại, giới lập trình viên và người tiêu dùng.Kho ứng dụng cho di động cũng có
thể gọi là chợ ứng dụng, nơi mà các lập trình viên, các nhà phát triển phần mềm
có thể đưa ứng dụng của mình lên để bán cũng như người sử dụng có thể lên đó
để tìm kiếm, mua và tải về một cách dễ dàng. Lợi nhuận của kho ứng dụng là rất
lớn khi mà số lượng người dùng,số lượng ứng dụng là rất lớn và vì thế số lượng
người tải về cũng lớn và tỉ lệ chia sẻ tương đối cao dành cho người sở hữu kho
ứng dụng.
Điện toán đám mây được thế giới dự đoán sẽ là “cơn sóng thần công nghệ”
song nó lại khá mới mẻ tại Việt Nam. Việc sử dụng hay có thể nói là tận dụng
các điểm mạnh,các ưu thế của điện toán đám mây để tối ưu các tính năng cho sản
phẩm cũng như giảm chi phí tối đa cho nó nhằm nâng cao sức cạnh tranh cho sản
phẩm là một lựa chọn hiện nay. Xây dựng ứng dụng theo mô hình điện toán đám
mây sẽ là một điểm nhấn, là chìa khóa để mang lại thành công cho sản phẩm.
Vì thế trong đồ án tốt nghiệp này, em sẽ sử dụng điện toán đám mây để xây
dựng kho ứng dụng cho các thiết bị di động sử dụng hệ điều hành Android.
Em xin chân thành cảm ơn các thầy cô trong Bộ môn Công nghệ phần mềm,
Viện Công nghệ thông tin và Truyền thông trường ĐHBK HN đã tận tình giúp
đỡ, hướng dẫn, truyền đạt kiến thức cũng như kinh nghiệm, tạo điều kiện học tập
và nghiên cứu để em có thể hoàn thành tốt kỳ đồ án tốt nghiệp này.
Đặc biệt, chúng em xin gửi lời cảm ơn sâu sắc tới ThS Hoàng Anh Việt –
người đã tận tình giúp đỡ, trực tiếp hướng dẫn em trong suốt quá trình thực hiện
đồ án tốt nghiệp.
2. Nhiệm vụ được giao trong đồ án tốt nghiệp :
- Tìm hiểu về hệ điều hành Android, xây dựng các ứng dụng dựa trên nền tảng
Android.
- Tìm hiểu về các kho ứng dụng cho di động (Application Store)
- Tìm hiểu về cloud computing, Google App Engine. Xây dựng ứng dụng dựa
trên GAE.
- Tìm hiểu môi trường thanh toán quốc tế qua Paypal, thẻ tín dụng và Paypal
API dành cho Andorid.
- Tìm hiểu Web service trao đổi dữ liệu giữa GAE và Android.
- Phân tích, thiết kế và xây dựng thành công kho ứng dụng cho di động cho các
thiết bị di động sử dụng hệ điều hành Android sử dụng dịch vụ điện toán đám
mây của Google (GAE).
3. Bố cục của đồ án tốt nghiệp :
Đồ án tốt nghiệp gồm có 4 chương với các nội dung như sau :
• Chương 1: Tổng quan đề tài
Trong chương này đề cập đến mô tả bài toán, đặt vấn đề để đưa ra lý do xây
dựng bài toán cũng như những lý thuyết kèm theo.
• Chương 2: Cơ sở lý thuyết và phương pháp tiếp cận
Trong chương này đề cập đến phương pháp tiếp cận bài toán, các công nghệ
và lý thuyết sẽ sử dụng để tiếp cận xây dựng cho bài toán.
• Chương 3: Mô hình kho ứng dụng đề xuất
Trong chương này đề cập đến kiến trúc bài toán, các phân tích thiết kế cũng
sẽ được đưa ra ở phần này.
• Chương 4: Cài đặt và kết quả thử nghiệm
Trong chương này sẽ đề cập đến việc cài đặt dựa trên những phân tích thiết
kế từ chương trước, sử dụng các thư viện kèm theo. Chương này cũng đưa
ra các kết quả đạt được và các kết quả thử nghiệp, kiểm thử.
Chương 1 :Tổng quan đề tài
1.1 Mô tả bài toán
Tên đề tài : Ứng dụng điện toán đám mây xây dựng kho ứng dụng cho các
thiết bị sử dụng hệ điều hành Android.
Xây dựng hệ thống đáp ứng đầy đủ chức năng của một kho ứng dụng cho di
động gồm :
- Hệ thống cho phép nhà phát triển có thể đăng ký, đưa ứng dụng của mình
lên để bán và xem thông tin tất cả các ứng dụng của mình thông qua một web
portal thân thiện.
- Người dùng điện thoại Android có thể đăng ký tài khoản trên portal của hệ
thống, tải về ứng dụng để cài đặt trong điện thoại của mình. Sau đó người sử
dụng có thể truy cập kho ứng dụng thông qua ứng dụng AndroidStore đã được
cài đặt trên máy.
- Người dùng tìm kiếm theo loại ứng dụng, hoặc theo top, hoặc theo tên ứng
dụng. Người dùng có thể mua và tải về để cài đặt cho ứng dụng, ngoài ra còn
có thể tham gia đánh giá cho ứng dụng, viết comment cũng như đọc các
comment.
- Người mua và người bán được thanh toán qua Paypal – là phương tiện thanh
toán phổ biến nhất thế giới hiện nay, đáp ứng nhu cầu thanh toán của hầu hết
các quốc gia trong đó có Việt Nam.
1.2 Đặt vấn đề
Kho ứng dụng – mỏ vàng tiềm năng :
Hiện nay thế giới đã bước vào thời kì phát triển mạnh mẽ của các thiết bị điện
thoại thông minh, máy tính bảng. Các nền tảng mới ra đời và ngày càng khẳng
định là yếu tố quyết định cho sự thành công của các thiết bị thông minh mà ta
phải kể đến như Android, I OS và cả Windows Phone 7 . Trong sự cạnh tranh
giữa các nền tảng, thì ứng dụng nổi lên như là một yếu tố quyết định đến sự
thành công của một nền tảng và xuất hiện một khái niệm mang tên kho ứng dụng
hay là chợ ứng dụng. Kho ứng dung là nhân tố thúc đẩy
Trong thời gian qua, sự thành công của AppStore cũng như Android Market đã
tạo nên một xu hướng mới, xu hướng xây dựng các kho ứng dụng cho di động.
Không chỉ các hãng sở hữu nền tảng,các nhà sản xuất điện thoại di động, các
hãng viễn thông mà kể cả các tổ chức, cá nhân bên thứ ba cũng xây dựng các
Trong chương này, NV sẽ mô tả bài toán, đặt vấn đề để tiến đến lý do ra đời bài toán
cũng như các lý thuyết kèm theo . Chương gồm có 2 đề mục lớn :
1.1 Mô tả bài toán
1.2 Đặt vấn đề
kho ứng dụng cho riêng mình nhằm chia sẻ miếng bánh lợi nhuận khổng lồ từ thị
trường ứng dụng có giá trị lên tới 29 tỷ USD vào năm 2013.
Hình 1-1 : Số lượng ứng dụng của các kho ứng dụng tháng 3/2011
Hiện tại với việc bùng nổ các ứng dụng cho di động thì cũng bùng nổ cả chợ
cho di động, nói đến chợ cho di động phải nói đến App Store, tuy nhiên ta có thể
phân ra thành các loại hình chợ như sau :
- Operator Portals : (như Vodafone Live) : Đây là loại hình chợ được sở
hữu bởi các nhà khai thác di động, với lợi thế là có thể thanh toán trực
tiếp với khách hàng thông qua tài khoản trên điện thoại của họ. Các nhà
lập trình phải thuê các nhà khai thác trong việc marketting phân phối
cũng như thanh toán. Tuy nhiên trong hầu hết các trường hợp thì lợi
nhuận thu được lại phần lớn nghiêng về các nhà khai thác.
- 3
rd
Party Store Fronts : Người sử dụng sử dụng internet để truy cập
application stores với sự hỗ trợ số lượng lớn các nền tảng và thiết bị. Nhà
phát triển thu được lợi nhuận chia sẻ cao nhưng quảng bá và hiển thị rõ
ràng là điều lo ngại với loại hình này. Và không giống như loại hình
operator portal, chợ ứng dụng không được hiển thị trực tiếp tới người sử
dụng mà người sử dụng phải search chúng .
- Platform Application Stores : Ex Ovi Store, Android Market :Đây là loại
hình mới mẻ cho các chợ ứng dụng mà nó được xây dựng bởi các nhà sản
xuất thiết bị như Nokia, LG,… hoặc các nhà phát triển nền tảng như
Google, MS hoặc là cả 2 như Apple, RIM,… Lợi thế lớn nhất của nó
chính là việc nhúng kho ứng dụng ngay trên thiết bị di động khi sản xuất
ra, và việc khám phá chúng là khá đơn giản. Như thế nó có thể chiếm lấy
một lượng lớn các thiết bị di động cũng như lượng rất lớn người sử dụng.
Và vì thế nó có tiềm năng rất lớn là thu hút các nhà phát triển phần mềm.
Việc chia sẻ lợi nhuận cũng rất hấp dẫn cho các lập trình viên ,như App
Store hay Android Market đều chia sẻ với tỷ lệ là 70%-30%
Hình 1- 2: Lợi nhuận thu được của các kho ứng dụng trong 2 năm 2009/2010
Hình 1- 3:Lợi nhuận dự kiến thu được của các kho ứng dụng đến 2014
Đến năm 2013, doanh thu ước tính của thị trường ứng dụng di động thế giới
đạt con số 29 tỷ USD . Có thể nói đây chính là mỏ vàng dành cho không chỉ các
nhà phát triển phần mềm mà là những nhà sở hữu các kho ứng dụng – nơi buôn
bán và tải về hầu như tất cả các ứng dụng. Hiện tại, ở VN, FPT, Viettel và cả
Mobifone đều tung ra các chợ ứng dụng, tuy nhiên vẫn chưa đem lại nhiều thành
công.
a) AppStore:
Kho ứng dụng thành công nhất hiện nay. Hiện tại App Store của Apple là kho
ứng dụng có nhiều ứng dụng nhất hiện nay với khoảng gần 400.000 ứng dụng.
App Store là kho ứng dụng đem lại nhiều lợi nhuận nhất, chiếm tới gần 80% lợi
nhuận của tất cả các kho ứng dụng trên thế giới.
App Store là kho ứng dụng của Apple, nó cung cấp các ứng dụng sử dụng được
phát triển từ iOS SDK cho các thiết bị sử dụng hệ điều hành iOS như
Iphone,Ipad. Ứng dụng có thể tải trực tiếp về thiết bị hoặc có thể tải về máy tính
qua iTunes. 30% lợi nhuận từ kho ứng dụng sẽ rơi vào Apple, 70% sẽ được trả
lại người sở hữu ứng dụng. App Store mở vào ngày 10/7/2008 qua nâng cấp từ
iTunes.
Thanh toán trên iPhone App Store được xử lý qua tài khoản iTunes của bạn mà
là liên kết trực tiếp vào thẻ tín dụng của bạn. Các hệ thống thanh toán rất dễ dàng
và cho phép bạn mua các ứng dụng dễ dàng thông qua ứng dụng App Store hoặc
giao diện iTunes.
b) Android Market:
Android Market là một kho phần mềm online được phát triển bởi Google cho các
thiết bị Android. Một chương trình ứng dụng gọi là chợ được cài trước cho hầu
hết các thiết bị chạy Android và cho phép người sử dụng lựa chọn, tìm kiếm và
tải về các ứng dụng được đưa ra bởi bên thứ 3.
Hiện tại Android Market cùng với App Store là hai kho ứng dụng thành công
nhất hiện nay. Android Market là kho ứng dụng có số lượng ứng dụng và số
lượng download đứng thứ 2 thế giới sau App Store, hiện tại kho ứng dụng của
Google đang phát triển nhanh nhất và có thể vượt mặt App Store trong tương lai.
Android Market là kho ứng dụng có tỷ lệ ứng dụng miễn phí nhiều nhất và số
lượng ứng dụng miễn phí đã vượt qua App Store.
Các nhà phát triển phần mềm nhận 70% số tiền ứng dụng bán được , với khoảng
30% được phân phối qua các nhà mạng và còn lại thì qua payment. Lợi nhuận
thu được từ Android Market được trả cho người lập trình qua tài khoản Google
checkout merchant
Những người sử dụng ở một số quốc gia có thể truy cập được các ứng dụng có
phí trên Android Market, số còn lại thì duy nhất truy cập các ứng dụng miễn phí.
Tương tự với những người lập trình có thể bán các ứng dụng của mình chỉ ở một
số nước.
c) Kho ứng dụng trong nước :
Hiện các doanh nghiệp trong nước đang xây dựng kho ứng dụng cho riêng
mình. Tiên phong là FPT, với F-Store kho ứng dụng cho điện thoại di động được
xây dựng khá sớm. Nguồn ứng dụng trong kho một phần do FPT phát triển, một
phần từ các cuộc thi viết ứng dụng do FPT tổ chức. FPT cũng kêu gọi Nokia
tham gia, tuy nhiên chương trình này không mang lại kết quả đáng kể nào.
Viettel là nhà mạng đầu tiên nhảy vào lĩnh vực xây dựng ứng dụng, phát triển
ứng dụng cho di động bằng cuộc thi viết ứng dụng, game cho điện thoại di động.
Viettel còn chia tỉ lệ người đoạt giải là 60%-40% cho doanh thu được từ sản
phẩm.
Mobifone cũng cung cấp kho ứng dụng mSpace, cung cấp một loạt các tiện ích
cho khách hàng sử dụng điện thoại di động có thể tìm kiểm, lựa chọn, mua
những ứng dụng tiện ích, phù hợp với máy điện thoại của mình qua
website,wapsite và SMS.
Nhìn chung các kho ứng dụng trong nước hiện nay chưa tiếp cận với mô hình
của các kho ứng dụng lớn trên thế giới. Các kho ứng dụng của Viettel chỉ có trên
nền web và tải ứng dụng về bằng cách gửi tin nhắn hoặc truy cập trên trang web
của kho ứng dụng, trong khi đó mobifone thì truy cập thông qua wap. Cả hai kho
ứng dụng của viettel và mobifone không có ứng dụng được cài đặt trên điện
thoại và vì thế không thể truy cập và tìm kiếm ứng dụng trên điện thoại như các
kho ứng dụng trên thế giới. Riêng F-Store của FPT thì kho ứng dụng đa phần là
miễn phí, và có hỗ trợ trên điện thoại chỉ đối với một vài dòng điện thoại do FPT
sản xuất, vốn không chiếm được nhiều thị phần trong nước. Nhìn chung
Mobifone và Viettel có phương thức thanh toán khá dễ dàng nhưng chỉ hỗ trợ
trong nước và chỉ đối với người dùng mạng của họ. Chính vì những hạn chế trên
nên các kho ứng dụng trong nước vẫn chưa đạt được doanh thu đáng kể và cũng
phải nói đến chất lượng ứng dụng vẫn rất thấp, chưa thu hút được đông đảo các
lập trình viên do chưa chưa có lợi nhuận và việc viết cho các kho ứng dụng nước
ngoài thu được lợi nhuận cao hơn. Một phần nữa là người dân VN vẫn chưa có
nhu cầu cao cũng như tỷ lệ sử dụng smartphone vẫn còn khiêm tốn, điện thoại
chủ yếu dùng để nghe, gọi…
d) Bảng so sánh một số kho ứng dụng :
App Store Android
Market
M-Store F-Store
Truy cập
trên Web
Có Có Có Có
Truy cập
trên điện
thoại
Có Có Không Có, chỉ hỗ
trợ với F-
mobile
Development iPhone
SDK ,API,
testing tool,
debugging
tool, emulator
…
Android SDK,
API, testing
tool,
debugging
tool, emulator
…
Không có Không có
Developer
Fees
99$/1 năm 25$ 0 0
Size Trên 400,000 Trên 200,000 <1000 1000
Tìm kiếm
ứng dụng
Rất khó khăn
vì có quá
nhiều ứng
dụng, rất
nhiều loại
ứng dung
khác nhau
Rất khó khăn
vì có quá nhiều
ứng dụng, các
tên trùng lặp
rất nhiều.
Dễ dàng do
quá ít ứng
dụng
Dễ dàng
do quá ít
ứng dụng
Thanh toán Mua và bán
ứng dụng
thông qua tài
khoản iTunes
được liên kết
trực tiếp với
thẻ tín dụng
của của người
bán và người
mua
Thanh toán
được xử lý qua
Google
Checkout,Hỗ
trợ rất ít quốc
gia, trong đó
gần đây mơi
hỗ trợ mua tại
Việt Nam,
nhưng nhà lập
trình vẫn
không thể bán
được tại Việt
Nam.
Thanh toán
thông qua
tài khoản
điện thoại
của nhà
mạng, cụ
thể là
Viettel. Vì
vậy chỉ hỗ
trợ điện
thoại sử
dụng mạng
Viettel.
Chưa
thương
mại hóa,
các ứng
dụng hiện
tại là miễn
phí.
Hệ thống
đóng/ mở
Là hệ thống
đóng hoàn
toàn bởi
Apple, bị
kiểm soát
chặc chẽ bởi
các điều kiện
khá độc đoán
Có chính sách
rất mở, hầu hết
các ứng dụng
tải lên kho ứng
dụng đều được
chấp nhận, vì
vậy chất lượng
ứng dụng thấp
Ứng dụng
đa phần do
Viettel phát
triển
Ứng dụng
đa phần là
do công ty
FPT phát
triển
của Apple hơn hẳn của
App Store
Phân mảng Android có
nhiều phiên
bản, nhiều
nhà sản xuất
với các kích
thước màn
hình, phần
cứng khác
nhau. Bị phân
mảnh nhiều.
Iphone chỉ có
5 phiên bản và
phần cứng ,
kích thước
màn hình
không thay đổi
nhiều. Không
bị phân mảnh.
Hỗ trợ
nhiều nền
tảng, nhiều
thiết bị
khác nhau
chứ không
tập trung
vào một
nền tảng.
Hỗ trợ chủ
yếu cho
dòng điện
thoại của
FPT
Bảng 1-1 : So sánh giữa các kho ứng dụng
Sau khi tìm hiểu, phân tích các kho ứng dụng trên thế giới và của Việt Nam thì
có thể nhận thấy dù kho ứng dụng của có quy mô rất lớn và đang rất thành công
như App Store hay Android Market thì cũng vẫn còn hạn chế. Đó là số lượng
ứng dụng quá lớn, dẫn đến số lượng rất lớn ứng dụng bị bỏ qua và gây khó khăn
cho việc tìm kiếm và tiếp cận một ứng dụng. Riêng với Android Market cũng
như các kho ứng dụng lớn trên thế giới khác vấn đề thanh toán cũng là một vấn
đề lớn, đặc biệt là các quốc gia thị trường nhỏ trong đó có Việt Nam. Trong khi
đó các kho ứng dụng của Việt Nam thì việc tiếp cận người sử dụng là tương đối
khó khăn khi chỉ hỗ trợ duy nhất mạng của nhà sở hữu ứng dụng (Viettel,
mobifone), hoặc chỉ hỗ trợ một dòng điện thoại có thị phần rất nhỏ như F-mobile
của FPT. Ngoài ra do hỗ trợ nhiều dạng điện thoại khác nhau, nên các kho ứng
dụng vẫn chưa chạy được trên điện thoại, và gây khó khăn cho người dùng …
Nhận thấy việc xây dựng kho ứng dụng cho điện thoại di động vẫn có những cơ
hội thành công và thị trường tiềm năng cho bên thứ ba phát triển. Vì vậy NV sẽ
xây dựng kho ứng dụng BKStore với những mục tiêu sau :
• Hỗ trợ hệ điều hành Android
• Ứng dụng có thể chạy trên điện thoại , truy xuất kho ứng dụng qua
phần mềm này tương tự Android Market
• Hỗ trợ các nhà lập trình, các nhà phát triển có thể tải ứng dụng lên một
web portal thân thiện và dễ sử dụng.
• Có thể hỗ trợ thanh toán quốc tế, kết nối với các trung tâm thanh toán
quốc tế phổ biến, an toàn và tiện dụng và đặc biệt hỗ trợ tốt thanh toán
tại Việt Nam.
• Có chính sách thanh toán minh bạch, ưu tiên quyền lợi của các nhà
phát triển phần mềm.
Kết chương 1 :
Trong chương này, NV đã trình bày toàn bộ từ mô tả bài toán đến đặt vấn đề
để đưa ra bài toán, trong đó có đưa ra các thông tin về các kho ứng dụng trên
thế giới và trong nước, làm cơ sở để đưa ra nhận xét và so sánh chúng, từ đó
đưa ra các mục tiêu đạt được cho kho ứng dụng BKStore. Trong các chương
tiếp theo, NV sẽ trình bày lần lượt cách tiếp cận vấn đề, cơ sở lý thuyết để giải
quyết, các phân tích thiết kế và cuối cùng là cài đặt,các kết quả đạt được nhằm
xây dựng thành công kho ứng dụng BKStore.
Chương 2: Cơ sở lý thuyết và phương pháp tiếp cận
2.1 Phương pháp tiếp cận và hướng giải quyết vấn đề
2.1.1 Xây dựng kho ứng dụng cho nền tảng Android.
Hiện nay có rất nhiều nền tảng cho di động như IOS của Apple, Android của
Google, Windows Phone7 của Microsoft, Bada của SamSung, Symbian của
Nokia… và vì thế ứng dụng cũng rất phong phú. Việc lựa chọn để xây dựng kho
ứng dụng cho thiết bị nào, cho nền tảng nào cũng rất khó khăn và phải có hướng đi
đúng đắn. Hiện tại Android đang phát triển với tốc độ rất nhanh, nó đã vượt qua lần
lượt IOS và Symbian để trở thành nền tảng chiếm thị phần lớn nhất thế giới.
Android cũng có tốc độ cập nhật nhanh nhất trong số các nền tảng, và cũng là nền
tảng bị phân mảnh nhiều nhất, có nhiều nhà sản xuất tham gia nhất và cũng là nền
tảng có nhiều cải tiến về công nghệ nhất. Android là nền tảng mở, và rất thuận tiện
để phát triển ứng dụng cho nền tảng này. Vì vậy việc xây dựng kho ứng dụng cho
Android có thể tận dụng từ sự phong phú về thiết bị, sự phân mảnh của hệ điều
hành này để có cơ hội để thành công.
2.1.2 Ứng dụng điện toán đám mây xây dưng kho ứng dụng
Kho ứng dụng là nơi mà lập trình viên, nhà phát triển đưa ứng dụng của mình lên
bán, đồng thời người sử dụng điện thoại, hay còn gọi là khách hàng truy cập được
kho ứng dụng thông qua một ứng dụng được cài đặt trên điện thoại. Như vậy cần
xây dựng một web portal, nơi nhà lập trình, người dùng điện thoại có thể lập tài
khoản, upload ứng dụng và theo dõi các ứng dụng của mình. Ngoài ra phải xây
dựng ứng dụng chạy trên điện thoại, cho phép khi truy cập ứng dụng, tức là truy cập
store ngay trên điện thoại của khách hàng để khách hàng dễ dàng tìm kiếm, mua và
tải về ứng dụng.
Vấn đề lưu trữ ứng dụng đảm bảo tính an toàn, nhưng cũng cần phải giảm tối đa
chi phí.Việc khó đánh giá qui mô ứng dụng để thuê host cho phù hợp, tránh lãng phí
cũng như công tác bảo trì server … cũng hết sức khó khăn với qui mô lớn. Vì vậy
chúng ta đưa ra giải pháp sử dụng điện toán đám mây để xây dựng kho ứng dụng,
tận dụng tối đa tính ưu việt của điện toán đám mây, đồng thời giảm chi phí, đem lại
sức cạnh tranh cho ứng dụng. Hiện tại trong các nhà cung cấp dịch vụ điện toán
đám mây thì Google cung cấp dịch vụ điện toán đám mây khá thoải mái với dung
lượng lớn, chi phí thanh toán khá thuận lợi thông qua Google Checkout, ngoài ra
Trong chương này,NV sẽ trình bày về phương pháp tiếp cận để giải quyết vấn đề đã
nêu, đưa ra các công nghệ, các hướng giải quyết bài toán. NV cũng trình bày về cơ
sở lý thuyết về các hướng tiếp cận đã nêu ra trong phần đầu. Chương 2 sẽ gồm các
đề mục lớn :
2.1 Phương pháp tiếp cận và hướng giải quyết vấn đề
2.2 Cơ sở lý thuyết
API của Google được cung cấp thông qua Google App Engine hỗ trợ hai ngôn ngữ
rất phổ biến là Java và rất dễ sử dụng là Python.
Vì vậy ứng dụng Google App Engine để xây dựng portal, sử dụng hosting của
Google để lưu trữ dữ liệu lớn là hướng giải quyết đúng đắn cho những yêu cầu phức
tạp của việc xây dựng kho ứng dụng.
2.1.3 Sử dụng phương thức thanh toán quốc tế thuận tiện, phục vụ rộng khắp
Vấn đề thanh toán quốc tế, tức là thanh toán cho người bán (các nhà lập trình) và
người mua (người sử dụng điện thoại) ở khắp nơi trên thế giới đòi hỏi kho ứng dụng
cần đưa ra phương thức thanh toán dễ dàng, đáp ứng cho đa số quốc gia và chính
sách chia sẻ lợi nhuận một cách hợp lý . Đây là điều thu hút được các nhà phát triển
cũng như người mua, đem lại thành công cho kho ứng dụng.
Để giải quyết vấn đề trên, ta lựa chọn một hệ thống thanh toán quốc tế thân thiện
và phổ biến toàn thế giới. Google Checkout được Google cung cấp API rất dễ sử
dụng tuy nhiên điểm hạn chế là chỉ hỗ trợ cho một số nước trong đó không có Việt
Nam. Paypal là hệ thống thanh toán quốc tế trực tuyến hàng đầu thế giới và rất phổ
biến cho thương mại điện tử. Paypal hiện nay đã hỗ trợ 24 loại tiền chủ chốt và đã
trở thành phổ biến ở đa số các quốc gia hiện nay tại Việt Nam. Paypal cũng đã cung
cấp API cho Android là một trong những điểm rất thuận lợi khi sử dụng cho kho
ứng dụng đang xây dựng.
Vì vậy lựa chọn Paypal cụ thể là API của Paypal cho Android làm phương thức
thanh toán cho kho ứng dụng sẽ giải quyết được tất cả các yêu cầu của việc thanh
toán và vận hành ứng dụng.
2.2 Cơ sở lý thuyết
Trong phần này NV sẽ trình bày toàn bộ lý thuyết về hệ điều hành Android từ đặc
điểm đến kiến trúc, và phát triển ứng dụng. NV cũng sẽ trình bày về điện toán đám
mây, Google App Engine và cuối cùng là thanh toán quốc tế trên Paypal.
2.2.1 Tổng quan về hệ điều hành Android
2.2.1.1 Android là gì?
Android là nền tảng mở cho các thiết bị di động bao gồm hệ điều hành dựa trên
linux kernel,middleware và một số ứng dụng cơ bản.
2.2.1.1 Đặc điểm Android
Hệ điều hành nguồn mở : di động chạy Android cho phép người dùng và các
lập trình viên dễ dàng can thiệp, phát triển và tùy biến ứng dụng của mình.
Ngoài ra được cộng đồng phần mềm rất quan tâm và đón nhận.
Nhiều ứng dụng miễn phí : So với App Store thì trên Android Market số
lượng các ứng dụng miễn phí nhiều hơn. Goolge cũng cho phép người dùng
tự do giới thiệu các ứng dụng của mình.
Được bảo trợ bởi một liên minh OHA tới nay đã có 80 thành viên bao gồm
những công ty phần cứng, phần mềm viễn thông lớn nhất thế giới đứng đầu
là Google .
Tốc độ phát triển của Android là rất nhanh chóng :
2.2.1.3 Kiến trúc Android
Hình 2-1: Kiến trúc hệ điều hành Android
- Application :
Android được đưa ra với phần lõi là các ứng dụng bao gồm email client, SMS
program, calendar, máp, browser, contacts,… và các ứng dụng của bên thứ ba
phát triển. Toàn bộ ứng dụng đều viết bằng Java.
- Application Framework:
Bởi cung cấp một nền tảng mở, Android cung cấp cho các nhà phát triển khả
năng để xây dựng những ứng dụng cực kì phong phú và sáng tạo. Những nhà
phát triển không cần mất chi phí để tận dụng phần cứng, truy nhập thông tin,
chạy trên nền dịch vụ, cài đặt chông báo động …
- Libraries:
Android cung cấp một tập các thư viện C/C++ được sử dụng bởi các thành phần
khác nhau trong hệ thống. Dưới đây là một số thư viện lõi:
System C library : sự thực thi gốc của chuẩn thư viện hệ thống C (libc), điều
chính trên thiết bị nhúng trên nền Lịnux
Media libraries : Dựa trên PacketVideo’s OpenCORE; thư viện hỗ trợ
playback và record những dạng video và audio phổ biến, như file ảnh tĩnh,
bao gồm MPEG4,H.264,MP3,AAC
Surface Manager : Quản lý truy cập để hiển thị hệ thống con hiển thị và phù
hợp với đồ họa 2D,3D từ đa ứng dụng.
- Android Runtime
Android bao gồm một tập hợp những thư viện nhân cung cấp hầu hết các chức
năng có trong thư viện lõi của ngôn ngữ Java.
Mọi ứng dụng của Android được chạy trong xử lý của bản thân nó,với thể hiện của
Dalvik virtual machine. Dalvik được viết để thiết bị có thể chạy nhiều máy ảo hiệu
quả. Dalvik VM thực thi files trong dạng Dalvik Executable (.dex) cái mà đươc
tối ưu để sử dụng ít bố nhớ nhất. VM là nền được đăng kí, và chạy các lớp biên
dịch bởi bộ biên dịch java mà nó được chuyển qua dạng .dex bao gồm “dx” tool.
Máy ảo Dalvik dựa vào hạt nhân Linux cho các chức năng cơ bản như luồng và
quản lý bộ nhớ thấp.
- Linux Kernel:
Android dựa trên Linux phiên bản 2.6 cho lõi hệ thống dịch vụ, giống như
security, memory management,process management, network và driver model.
Nhân linux cũng hành động giống như một tầng trừu tượng giữa phần cứng và
phần còn lại của phần mềm.
2.2.1.4 Ứng dụng trên Android
Phần mềm được viết bằng ngôn ngữ Java. Mã Java sau khi được biên dịch sẽ
được đóng gói thành một file đơn .apk duy nhất. Đây chính là dạng file dùng cho
việc phân phối và cài đặt các ứng dụng Android trên thiết bị. Toàn bộ code trong
một gói .apk được coi là một ứng dụng. Tuy nhiên điểm cần chú ý rằng thực chất
Android chỉ sử dụng lại cú pháp của ngôn ngữ Java là chủ yếu chứ không hỗ trợ
đầy đủ ngôn ngữ này. Các thư viện Java cũng như các hàm API của Android chỉ là
một phần của bộ chuẩn Java Platform Standard Edition (Java SE) hay bộ thu nhỏ
dành cho di động Java Platform Micro Edition (Java ME hay còn gọi là J2ME).
Máy ảo Java của Android cũng là một dạng khác dựa trên cấu trúc của máy ảo
Java
Các thành phần cơ bản của ứng dụng Android :
• Activity : Một activity thực hiện một giao diện trực quan để người dùng có
thể thao tác.Một ứng dụng của Android có thể chứa một hoặc nhiều activity.
• Service : Service không có giao diện trực quan mà nó chạy ở nền trong một
thời gian không xác định.
• Broadcast Receiver : là một thành phần không làm gì ngoài việc nhận và
hưởng ứng lại những thông báo (broadcast) được ban ra như là thông báo pin
yếu, có cuộc gọi đến …
• ContentProvider : là thành phần làm cho tập dữ liệu của ứng dụng có thể sử
dụng bởi một ứng dụng khác.
•
2.2.2 Điện toán đám mây và Google App Engine
2.2.2.1 Khái niệm điện toán đám mây
Điện toán đám mây (cloud computing) không phải là một công nghệ mà là một mô
hình cung cấp và tiếp thị dịch vụ CNTT đáp ứng các đặc trưng nào đó.
Mây là toàn bộ dịch vụ máy tính, không phải sản phẩm, trong đó :
Cơ sở hạ tầng được chia sẻ : Nhiều khách hàng chia sẻ một nền tảng công
nghệ chung và thậm chí là một ứng dụng đơn lẻ
Các dịch vụ này được truy xuất theo yêu cầu tại các đơn vị khác nhau tùy
theo dịch vụ. Các đơn vị có thể là người sử dụng, dung lượng, giao dịch hoặc
bất kỳ sự kết hợp nào từ chúng
Các dịch vụ được mở rộng. Từ quan điểm người dùng, các dịch vụ thì linh
hoạt, không có giới hạn cho sự phát triển
Mô hình giá cả là do tiêu thụ. Thay vì thanh toán các chi phí cố định của một
dịch vụ có quy mô để sử dụng tối đa, bạn trả một cái giá tham chiếu trên một
đơn vị tiêu dùng (người sử dụng, các giao dịch, dung lượng …) được đo
trong những khoảng thời gian có thể khác nhau, theo giờ hoặc tháng….
Dịch vụ có thể được truy xuất từ bất cứ nơi nào trên thế giới bởi nhiều thiết
bị. Mô hình đám mây dẫn đến 2 loại cơ bản khác nhau của các đám mây:
riêng (private) và công cộng (public).
2.2.2.2 Đặc trưng và tính chất của điện toán đám mây
Mô hình giá cả là do tiêu thụ: Thay vì thanh toán các chi phí cố định của một
dịch vụ có quy mô để sử dụng tối đa, bạn trả một cái giá tham chiếu trên một
đơn vị tiêu dùng (người sử dụng, các giao dịch, dung lượng …) được đo
trong những khoảng thời gian có thể khác nhau, theo giờ hoặc tháng chẳng
hạn
Trừu tượng hóa cao: những khái niệm về server, phần cứng hay mạng máy
tính được trừu tượng hóa ở mức cao cho người sử dụng
Tính tỷ lệ trực tiếp: giá trị sử dụng, khả năng và do đó giá cả có thể tăng hay
giảm mà không cần những hợp đồng thêm.
Khả năng đáp ứng của hạ tầng là có thể co giãn được
2.2.2.3 Các mô hình điện toán đám mây:
Hình 2- 2:Một số dịch vụ và nền tảng điện toán đám mây hiện nay
Software as a Service (SaaS): Đây là cách tiếp cận Cloud Computing được
sử dụng rộng rãi nhất hiện nay. Một ứng dụng có thể chạy trên máy chủ
trung tâm hơn là chạy trên các server riêng lẻ.
Software as a Service cung cấp ứng dụng riêng lẻ thông qua trình duyệt tới
hàng ngàn khách hàng sử dụng một kiến trúc multitenant. Về phía dịch vụ
đám mây nó chỉ yêu cầu để bảo trì và quản lý một ứng dụng trên đám mây,
còn về phía máy khách, nó không cần trả trước máy chủ, phần mềm và cả
giấy phép sử dụng.
Platform as a Service(PaaS)
PaaS cung cấp môi trường phát triển như một dịch vụ. Bạn có thể xây dựng
ứng dụng của bạn mà chạy trên cơ sở hạ tầng được cung cấp và được nhận
thông qua Intenet từ cung cấp Server.
Một số nền tảng như : Google App Engine,Windows Azure,EC2 …
Infrastructure as a Service (IaaS)
IaaS là việc phân phối hạ tầng máy tính như một dịch vụ. Người dùng mua
server, phần mềm, trung tâm dữ liệu, mạng… thay vì mua tất cả những tài
nguyên đó như những dịch vụ linh kiện.
Một số dịch vụ nổi tiếng : Google Gears, Amazon S3