100
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

Do an Tot Nghiep Dien Toan Dam May_ Android

  • Upload
    tbeo3

  • View
    397

  • Download
    7

Embed Size (px)

Citation preview

Page 1: Do an Tot Nghiep Dien Toan Dam May_ Android

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘIVIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

──────── * ───────

ĐỒ ÁNTỐ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

Page 2: Do an Tot Nghiep Dien Toan Dam May_ Android

HÀ NỘI 5-2011

Page 3: Do an Tot Nghiep Dien Toan Dam May_ Android

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

1. Thông tin về sinh viênHọ và tên sinh viên: Lê Đình AnĐiện thoại liên lạc 0988416079 Email: [email protected] 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 2011Tá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 2011Giáo viên hướng dẫn

ThS Hoàng Anh Việt

Page 4: Do an Tot Nghiep Dien Toan Dam May_ Android

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 đề.

Page 5: Do an Tot Nghiep Dien Toan Dam May_ Android

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.

Page 6: Do an Tot Nghiep Dien Toan Dam May_ Android

Mục lục

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP.............................................................3Danh mục các bảng............................................................................................................7Danh mục các hình.............................................................................................................8Danh mục các từ viết tắt và thuật ngữ.............................................................................9Mở đầu..............................................................................................................................10

1.Lời nói đầu.................................................................................................................102. Nhiệm vụ được giao trong đồ án tốt nghiệp :........................................................103. Bố cục của đồ án tốt nghiệp :..................................................................................11

Chương 1 :Tổng quan đề tài...........................................................................................121.1 Mô tả bài toán....................................................................................................121.2 Đặt vấn đề..........................................................................................................12

Kết chương 1 :..................................................................................................................18Chương 2: Cơ sở lý thuyết và phương pháp tiếp cận...................................................20

2.2 Cơ sở lý thuyết........................................................................................................202.1 Phương pháp tiếp cận và hướng giải quyết vấn đề.............................................20

2.1.1 Xây dựng kho ứng dụng cho nền tảng Android...............................................202.1.2 Ứng dụng điện toán đám mây xây dưng kho ứng dụng....................................202.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.........21

2.2 Cơ sở lý thuyết........................................................................................................212.2.1 Tổng quan về hệ điều hành Android................................................................212.2.2 Điện toán đám mây và Google App Engine.....................................................242.2.3 Thanh toán quốc tế - Paypal............................................................................27

Kết chương 2 :..................................................................................................................28Chương 3 : Mô hình kho ứng dụng đề xuất..................................................................29

3.1 Mô hình đề xuất:....................................................................................................293.2 Phân tích và thiết kế..............................................................................................293.1 Mô hình đề xuất:....................................................................................................29

3.1.1 Kiến trúc hệ thống.............................................................................................293.1.2 Tổng quan hệ thống :.......................................................................................30

3.2 Phân tích và thiết kế..............................................................................................333.2.1 Các thành phần của hệ thống............................................................................333.2.2 Các tác nhân tham gia hệ thống :......................................................................333.2.3 Sơ đồ chức năng của hệ thống :........................................................................343.2.4 Thiết kế cơ sở dữ liệu :.....................................................................................413.2.5 Biểu đồ tuần tự..................................................................................................463.2.6 Thiết kế giao diện :...........................................................................................49

Kết chương 3 :..................................................................................................................53Chương 4 : Cài dặt và kết quả thử nghiệm...................................................................54

4.1 Cài đặt................................................................................................................544.1.1 Công nghệ sử dụng......................................................................................544.1.2 Công cụ sử dụng..........................................................................................544.1.3 Cấu trúc cài đặt :..........................................................................................544.1.4 Cấu trúc dữ liệu............................................................................................554.1.5 Giải thuật......................................................................................................57

4.2 Kết quả đạt được và thử nghiệm:.............................................................................614.2.1 Các kết quả đạt được :.......................................................................................61

4.2.2 Một số kết quả kiểm thử :.....................................................................................66

Page 7: Do an Tot Nghiep Dien Toan Dam May_ Android

Kết chương 4:...................................................................................................................68TÀI LIỆU THAM KHẢO.................................................................................................71

Page 8: Do an Tot Nghiep Dien Toan Dam May_ Android

Danh mục các bảng

Bảng 1-1 : So sánh giữa các kho ứng dụng.......................................................................17Bảng 3-1 : Yêu cầu về môi trường.....................................................................................30Bảng 3-2 : Yêu cầu về giao diện........................................................................................30Bảng 3-3 : Danh sách Use case..........................................................................................34Bảng 3-4 : Mô tả use case Register....................................................................................35Bảng 3-5: Mô tả use case Login........................................................................................35Bảng 3-6: Mô tả usecase View List App...........................................................................36Bảng 3-7: Mô tả use case View Detail App.......................................................................36Bảng 3-8 : Mô tả use case Search......................................................................................37Bảng 3-9 : Mô tả use case Buy/Pay...................................................................................37Bảng 3-10 : Mô tả use case Download..............................................................................38Bảng 3-11: Mô tả use case Add Application.....................................................................39Bảng 3-12 : Mô tả use case View Own App......................................................................39Bảng 3-13 : Bảng App.......................................................................................................41Bảng 3-14 : Bảng Device...................................................................................................41Bảng 3-15: Bảng Version..................................................................................................41Bảng 3-16 : Bảng Language..............................................................................................42Bảng 3-17 : Bảng Country.................................................................................................42Bảng 3-18: Bảng Role........................................................................................................42Bảng 3-19 : Bảng User.......................................................................................................42Bảng 3-20 : Bảng Customer...............................................................................................43Bảng 3-21 : Bảng Developer.............................................................................................43Bảng 3-22 : Bảng Customer_App......................................................................................44Bảng 3-23 : Bảng AppComment.......................................................................................44Bảng 4-1 : Bảng Kiểm thử giao diện.................................................................................65Bảng 4-2 :Bảng kiểm thử các tình huống test....................................................................65Bảng 4-3 : Bảng kiểm thử tính đầy đủ hệ thống................................................................66Bảng 4-4 : Bảng kiểm thử quản trị cơ sở dữ liệu...............................................................66

Page 9: Do an Tot Nghiep Dien Toan Dam May_ Android

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.................................12Hình 1-2: Lợi nhuận thu được của các kho ứng dụng trong 2 năm 2009/2010.................13Hình 1-3:Lợi nhuận dự kiến thu được của các kho ứng dụng đến 2014............................14Hình 2-1: Kiến trúc hệ điều hành Android.......................................................................21Hình 2-2:Một số dịch vụ và nền tảng điện toán đám mây hiện nay..................................24Hình 2-3:Hệ thống dịch vụ điện toán đám mây của Google.............................................25Hình 3-4 :Sơ đồ kiến trúc hệ thống....................................................................................28Hình 3-5: Sơ đồ tổng quan hệ thống..................................................................................31Hình 3-6:Các tác nhân tham gia hệ thống..........................................................................32Hình 3-7:Sơ đồ Use case hệ thống.....................................................................................33Hình 3-8: Bảng cơ sở dữ liệu của hệ thống.......................................................................40Hình 3-9:Biểu đồ tuần tự Add Application........................................................................45Hình 3-10: Biểu đồ tuần tự Access/Search........................................................................46Hình 3-11:Biểu đồ tuần tự chức năng Buy App................................................................47Hình 3-12: Form đăng ký User trên Web Portal................................................................48Hình 3-13: Form Add App trên Web Portal......................................................................49Hình 3-14: Form My App trên Web Portal........................................................................50Hình 3-15:Danh sách ứng dụng khi truy cập vào BK Store trên Emulator.......................51Hình 3-16: Danh sách ứng dụng theo Category trên Emulator.........................................51Hình 3-17: Chi tiết ứng dụng trên Emulator......................................................................52Hình 4-1:Cấu trúc cài đặt hệ thống....................................................................................54Hình 4-2: Cấu trúc dữ liệu của DataStore..........................................................................55Hình 4-3: Cấu trúc của XML-RPC....................................................................................56Hình 4-4:Định dạng của XML- RPC.................................................................................57Hình 4-5: Cài đặt phân tích chuỗi XML nhận được..........................................................58Hình 4-6:Sơ đồ Parallel Payment......................................................................................59Hình 4-7:Màn hình hiển thị quá trình thanh toán bằng Paypal..........................................60Hình 4-8: Trang chủ của Web Portal.................................................................................61Hình 4-9:Giao diện kho ứng dụng trên SamSung Galaxy Mini........................................62Hình 4-10: Danh sách ứng dụng theo loại Game trên SamSung Galaxy Mini..................63Hình 4-11:Chi tiết ứng dụng trên SamSung Galaxy Mini.................................................64

Page 10: Do an Tot Nghiep Dien Toan Dam May_ Android

Danh mục các từ viết tắt và thuật ngữ

GAE Google App EnginePaaS Platform as a ServiceSaaS Software as a ServiceIaaS Infrastructure as a ServiceDB DatabaseApp ApplicationGUI Graphical user interfaceMPL Mobile payments libraryMECL Mobile Express Checkout LibraryNV Người viết luận văn

Page 11: Do an Tot Nghiep Dien Toan Dam May_ Android

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.

Page 12: Do an Tot Nghiep Dien Toan Dam May_ Android

- 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ử.

Page 13: Do an Tot Nghiep Dien Toan Dam May_ Android

Chương 1 :Tổng quan đề tài

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 đề

1.1 Mô tả bài toánTê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

Page 14: Do an Tot Nghiep Dien Toan Dam May_ Android

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.

- 3rd 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

Page 15: Do an Tot Nghiep Dien Toan Dam May_ Android

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

Page 16: Do an Tot Nghiep Dien Toan Dam May_ Android

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

Page 17: Do an Tot Nghiep Dien Toan Dam May_ Android

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 :

Page 18: Do an Tot Nghiep Dien Toan Dam May_ Android

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 đ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

Page 19: Do an Tot Nghiep Dien Toan Dam May_ Android

của Apple ứng dụng thấp 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

Page 20: Do an Tot Nghiep Dien Toan Dam May_ Android

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.

Page 21: Do an Tot Nghiep Dien Toan Dam May_ Android

Chương 2: Cơ sở lý thuyết và phương pháp

tiếp cậnTrong 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

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

Page 22: Do an Tot Nghiep Dien Toan Dam May_ Android

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 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ếtTrong 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

Page 23: Do an Tot Nghiep Dien Toan Dam May_ 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à

Page 24: Do an Tot Nghiep Dien Toan Dam May_ Android

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 :

Page 25: Do an Tot Nghiep Dien Toan Dam May_ 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

Page 26: Do an Tot Nghiep Dien Toan Dam May_ Android
Page 27: Do an Tot Nghiep Dien Toan Dam May_ Android

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

2.2.2.4 Lợi ích của điện toán đám mây

Page 28: Do an Tot Nghiep Dien Toan Dam May_ Android

Giảm chi phí: giảm chi phí một cách đáng kể do không phải đầu tư cơ sở hạ tầng, được sử dụng sẵn các tài nguyên một cách nhanh chóng và ít tốn kém

Đa phương tiện: Người dùng có thể truy hệ thống bằng cách sử dụng trình duyệt web mà không quan tâm đến vị trí của họ hay thiết bị nào đang dùng, như PC,mobile …

Độ tin cậy : giảm được các rủi ro có thể xảy ra nhờ khả năng khôi phục thất bại

Bảo mật: Việc bảo mật cải thiện nhờ vào tập trung hóa dữ liệu, các tài nguyên chú trọng bảo mật …

2.2.2.5 Google App Engine

Hình 2-3:Hệ thống dịch vụ điện toán đám mây của Google

GAE là một nền tảng cho phát triển và lưu trữ ứng dụng web trên trung tâm quản lý dữ liệu của Google. GAE là công nghệ điện toán đám mây, nó ảo hóa ứng dụng trên nhiều server. Nó tương tự các nền tảng khác như Amazon Web services hay Azure Services Platform.

Hiện tại GAE hỗ trợ hai ngôn ngữ là Python và Java. Google App Engine mang tính linh hoạt rất cao, nó cũng khá thoải mái cho các nhà phát triển có thể thử nghiệm và tiếp cận với nền tảng. Khi bắt đầu, GAE cung cấp 500 MB lưu trữ dữ liệu cho mỗi ứng dụng và bandwidth có thể quản lý xấp xỉ 5 triệu lượt truy cập/tháng.

Page 29: Do an Tot Nghiep Dien Toan Dam May_ Android

GAE cung cấp rất nhiều cơ sở hạ tầng cho việc dễ dàng mở rộng ứng dụng, nhưng nó chỉ duy nhất chạy trong giới hạn thiết kế trong cơ sở hạ tầng của nó.

GAE có các đặc điểm sau :

Tự động mở rộng và cân bằng tải

Sử dụng datastore để lưu trữ dữ liệu, và Gql để truy vấn. DataStore không phải là cơ sở dữ liệu quan hệ.

Việc thanh toán dựa trên số lượng đã sử dụng (gọi là qouta), ứng dụng được cho một mức free quota, tức là ứng dụng được sử dụng free đến một mức nào đó,sau khi hết quota sẽ phải thanh toán. Việc thanh toán được đăng ký mức tối đa trong một tuần, và có thể thay đổi mức đăng ký cho phù hợp.

Lưu trữ trên GAE khá uyển chuyển, nếu lưu trữ dung lượng lớn có thể sử dụng blobstore, tuy nhiên sẽ kích hoạt thanh toán để có thể sử dụng dạng lưu trữ này.

2.2.3 Thanh toán quốc tế - Paypal

Paypal là một công ty trong lĩnh vực thương mại điện tử (hay còn được gọi là cổng thanh toán trực tuyến) .Lĩnh vực hoạt động chính của Paypal là chuyên cung cấp cac dịch vụ thanh toán và chuyển tiền trực tuyến qua mạng Internet.

Một số ưu điểm của Paypal :

- Chế độ bảo mật cao

- An toàn giao dịch cho cả người bán và người mua

- Khi sử dụng Paypal để thanh toán, bạn sẽ không phải nhập số thẻ thanh toán (Master, Visa card) của mình mỗi khi cần.

- Một điểm khác biệt khá lớn của Paypal với các cổng thanh toán trực tuyến khác là sự uyển chuyển trong việc quản lý tiền cho khách hàng.

Paypal đã cung cấp API cho mobile trên cả hai nền tảng mạnh nhất hiện nay là Android và Iphone dưới hai dạng là Mobile Payments Library (MPL) và Mobile Express Checkout Library (MECL). MPL là thư viện được sử dụng khi tích hợp trực tiếp thư viện Paypal vào ứng dụng mobile, còn MECL được dùng khi sử dụng browser hoặc webview để checkout qua Paypal.

MPL và MECL cung cấp các dạng thanh toán là Simple,Parallel và Chained Payments. Simple payments chỉ có duy nhất một người nhận trong khi đó Parallel và Chained payments có nhiều người nhận và sự khác nhau về cách chia cho những người nhận.

Page 30: Do an Tot Nghiep Dien Toan Dam May_ Android

Kết chương 2 :

Tóm lại, trong chương 2 NV đã trình bày đầy đủ phương pháp tiếp cận và hướng giải quyết vấn đề. Đó là tập trung vào nền tảng Android, sử dụng điện toán đám mây và ứng dụng thanh toán quốc tế thông dụng trong thương mại điện tử, trong đó có Paypal. NV đã trình bày lý thuyết , khái niệm về những hướng tiếp cận trên và đồng thời kết thúc phần đặt vấn đề, lý thuyết kèm theo để tiến đến xây dựng kho ứng dụng trong các chương tiếp theo.

Page 31: Do an Tot Nghiep Dien Toan Dam May_ Android

Chương 3 : Mô hình kho ứng dụng đề xuất

Dựa vào cơ sở lý thuyết và các hướng tiếp cận vấn đề mà người làm luận văn đã trình bày trong chương trước, trong chương này, NV sẽ trình bày về mô hình bài toán trong đó có kiến trúc tổng thể. NV cũng sẽ trình bày chi tiết về phân tích thiết kế bài toán. Chương 3 gồm các đề mục lớn :

3.1 Mô hình đề xuất:

3.2 Phân tích và thiết kế

3.1 Mô hình đề xuất:3.1.1 Kiến trúc hệ thống

Hình 3-1 :Sơ đồ kiến trúc hệ thống

Mô tả kiến trúc hệ thống :

Page 32: Do an Tot Nghiep Dien Toan Dam May_ Android

Datastore : cung cấp kho dữ liệu lưu trữ, khả năng mở rộng mạnh mẽ cho web application, với trọng tâm là đọc và truy vấn. Một ứng dụng tạo ra các thực thể, với giá trị dữ liệu được lưu trữ như thuộc tính của một thực thể. Các ứng dụng có thể thực hiện truy vấn trên các thực thể. Tất cả các truy vấn được lập chỉ mục trước cho kết quả nhanh hơn trên dữ liệu lớn.

Với python, thực thể datastore được tạo từ đối tượng Python. Thuộc tính của đối tượng trở thành thuộc tính của thực thể.

Datastore không sử dụng SQL để truy vấn dữ liệu mà sử dụng Gql, ngôn ngữ tương tự với SQL.

Google App Engine : nền tảng cloud PaaS của Google sử dụng ngôn ngữ Python và các API cũng như sử dụng platform cung cấp sẵn để phát triển các ứng dụng Web, Web service …

Web Portal: Trang web được xây dựng hoàn toàn dựa trên nền tảng GAE, và lưu trữ trên web hosting của dịch vụ cloud của Google. Web portal là cổng thông tin của kho ứng dụng trên nền tảng Web, nơi lập trình viên và người sử dụng lập tài khoản, tải ứng dụng của mình lên kho ứng dụng. Web portal cũng là nơi người sử dụng tải về file nguồn của kho ứng dụng để cài đặt trên máy tính.

Web Service : Là nơi cung cấp các service cho client, được xây dựng và đặt trên cloud. Sử dụng phương thức truyền là XML-RPC. Web service sẽ chứa các phương thức để thao tác với cơ sở dữ liệu trên datastore, đáp lời gọi từ phía client cũng như trả về kết quả.

XML Parse : Là một module nằm trên Android, dùng để giao tiếp với web service. Nó sẽ xử lý XML trả về từ web service mà sử dụng XML RPC và phân tích ra các dữ liệu để trả về các đối tượng đồ họa để hiển thị.

AndroidStore : Là các module chính của kho ứng dụng được xây dựng trên nền tảng Android của Google. Nó bao gồm các Activity hiển thị cho người dùng và các lớp để xử lý khác.

Paypal Service : Ứng dụng trên Android được tích hợp với dịch vụ thanh toán của Paypal. Paypal service sẽ phục vụ xử lý thanh toán trực tiếp khi khách hàng mua ứng dụng. Service sẽ được gọi thông qua thư viện bao gồm các API của Paypal được cài đặt trên ứng dụng của Android.

3.1.2 Tổng quan hệ thống :

3.1.2.1 Mục tiêu của hệ thống :- Cho phép người dùng có thể tải và cài đặt được file nguồn .apk của

AndoridStore dễ dàng trên portal của hệ thống- Cho phép người dùng truy xuất Market thông qua ứng dụng được cài đặt trên

điện thoại của mình . Người dùng có thể xem, tìm kiếm, mua và tải về dễ dàng những ứng dụng có trên Store với các hình thức thanh toán phổ biến, thuận tiện, dễ dàng và an toàn cao. Người dùng có thể comment, vote cho ứng dụng đồng thời chia sẻ cho bạn bè.

Page 33: Do an Tot Nghiep Dien Toan Dam May_ Android

- Người phát triển phần mềm có thể đăng ký tài khoản trên portal dành cho Developer và upload ứng dụng lên để bán. Ngay sau khi ứng dụng được bán, tiền bán sẽ được chuyển đến ngay tài khoản của Developer.

- Hệ thống đảm bảo tính ổn định, chính xác, bảo mật và an toàn cao- Hệ thống có giao diện, đặc biệt là trên điện thoại mang tính thẩm mỹ và thân

thiện, dễ sử dụng cho tất cả các đối tượng sử dụng điện thoại thông minh.- Hệ thống mang tính linh hoạt cao, dễ mở rộng và đảm bảo giảm tối đa chi phí

vận hành.

3.1.2.2 Yêu cầu chung của hệ thống :Yêu cầu về môi trường :

STT Mô tả yêu cầu

01 Đảm bảo chạy tốt trên điện thoại di động sử dụng hệ điều hành Android mọi version

02 Điện thoại phải được kết nối GPRS hoặc 3G của bất kì nhà cung cấp dịch vụ nào

03 Ngôn ngữ lập trình được sử dụng là Android, Google App Engine (Python), JavaScript …

Bảng 3-1 : Yêu cầu về môi trường

Yêu cầu về giao diện :

Mã nghiệp vụ

Mô tả yêu cầu

01 Thân thiện dễ dùng, các chức năng phải được trình bày hợp lý phù hợp với người sử dụng

02 Đẹp, yêu cầu giao diện phải được trình bày có thẩm mĩ, hợp lý và thống nhất

03 Phù hơp với các kích thước màn hình phổ biến hiện nay

Bảng 3-2 : Yêu cầu về giao diện

Page 34: Do an Tot Nghiep Dien Toan Dam May_ Android

3.1.2.3 Sơ đồ tổng quan hệ thống :

Hình 3- 2: Sơ đồ tổng quan hệ thống

Page 35: Do an Tot Nghiep Dien Toan Dam May_ Android

3.2 Phân tích và thiết kế 3.2.1 Các thành phần của hệ thống

Kho ứng dụng gồm có 2 hệ thống gồm :

Website được xây dựng trên nền tảng PaaS Google App Engine và lưu trữ trong trung tâm dữ liệu điện toán đám mây của Google. Trang web này là nơi nhà phát triển tạo tài khoản, tải lên các ứng dụng của mình và theo dõi, quản lý các ứng dụng đã được tải lên của mình. Ngoài ra website là nơi đưa thông tin các ứng dụng mới, ứng dụng hot và là nơi đưa file cài đặt kho ứng dụng để người sử dụng có thể tải trực tiếp về điện thoại của mình. Hệ thống cũng là nơi lưu trữ ứng dụng, cung cấp service cho ứng dụng client ở dưới điện thoại di động.

Kho ứng dụng trên mobile Android. Kho ứng dụng cho phép người sử dụng có thể truy cập vào để tìm kiếm, xem thông tin và mua cũng như tải về ứng dụng cho chiếc điện thoại. Kho ứng dụng gọi các service được cung cấp bởi hệ thống web đã được xây dựng ở trên.

3.2.2 Các tác nhân tham gia hệ thống :

Hình 3- 3:Các tác nhân tham gia hệ thống

Các tác nhân tham gia hệ thống bao gồm Developer, Customer, Paypal Service :

Developer : Các nhà phát triển phần mềm, đưa ứng dụng của mình lên kho ứng dụng để bán.

Customer : Người sử dụng điện thoại Android, truy cập tìm kiếm, mua và tải về ứng dụng từ kho ứng dụng được cài đặt trên máy.

Page 36: Do an Tot Nghiep Dien Toan Dam May_ Android

Paypal Service : Tham gia vào thanh toán khi người sử dụng mua ứng dung, sẽ truy cập đến dịch vụ thanh toán của paypal và tiến hành các giao dịch.

3.2.3 Sơ đồ chức năng của hệ thống :

Hình 3-4:Sơ đồ Use case hệ thống

Page 37: Do an Tot Nghiep Dien Toan Dam May_ Android

Danh sách Use case :

STT Tên Use case Ý nghĩa

1 Registry Đăng ký tài khoản cho người dùng

2 Login Đăng nhập trước khi thực hiện các chức năng

3 View List App Xem ứng dụng dưới dạng list, dạng danh sách theo các tiêu chí : top, hot, category …

4 View Detail App Xem chi tiết ứng dụng gồm mô tả, các icon, screenshot, và các đánh giá của người dùng

5 Search Tìm kiếm theo tên ứng dụng

6 Buy/Pay Người dùng mua và thanh toán đối với ứng dụng có phí

7 Download Người dùng tải về ứng dụng

8 Vote and Comment Đánh giá và bình luận các ứng dụng

9 Add Application Nhà phát triển tải ứng dụng lên kho ứng dụng

10 View Own App Nhà phát triển xem thông tin các ứng dụng của mình, đặc biệt là số lượng download.

Bảng 3-2 : Danh sách Use case

Đặc tả use case

Register

Actor Customer,Developer

Descripiton Chức năng cho phép người sử dụng đăng ký tài khoản theo hai quyền là Developer và Customer. Người sử dụng điền đầy đủ các thông tin vào form đăng ký và submit.

Pre-conditions

Không có

Post-conditions

Cơ sở dữ liệu được update, có thông báo tài khoản được đăng ký thành công và có thể đăng nhập vào hệ thống

Normal-Flows

Use case này bắt đầu khi một actor muốn sử dụng hệ thống và phải tạo tài khoản.

Hệ thống yêu cầu actor nhập các thông tin liên quan đến actor như FullName, email, mobile,… Người sử dụng cũng phải chọn quyền đăng ký là customer hoặc developer . Với từng quyền thì có thêm các thông tin cá nhân để đăng ký.

Page 38: Do an Tot Nghiep Dien Toan Dam May_ Android

Người dùng bấm nút register để hoàn tất đăng ký

Nếu thành công hoặc thất bại thì đều được thông báo cho người dùng biết được.

Exceptions Không có ngoại lệ

Bảng 3-3 : Mô tả use case Register

Login

Actor Developer, Customer

Description Chức năng cho phép người sử dụng đăng nhập vào hệ thống để thực hiện các chức năng theo quyền của mình trong hệ thống

Pre-conditions

Người dùng phải đăng ký tài khoản

Post-conditions

Đăng nhập thành công vào hệ thống, người dùng được thực hiện các chức năng được thiết kế ứng với quyền của mình

Normal-Flows

Use case này bắt đầu khi người sử dụng hệ thống thực hiện các chức năng được thiết ké ứng với quyền của mình

Người dùng phải điền vào ô đăng nhập bao gồm tên tài khoản và mật khẩu.

Người dùng bấm vào login, nếu thành công sẽ có dòng thông báo thể hiện người dùng đã đăng nhập, nếu không thành công sẽ không đăng nhập vào hệ thống.

Exception Không có ngoại lệ

Bảng 3- 4: Mô tả use case Login

View List App

Actor Customer

Description Chức năng cho phép Customer có thể truy cập vào kho ứng dụng, xem danh sách ứng dụng theo các tiêu chí như Top paid,Top Free,Hot , hay theo loại như : Game, Entertaiment, Education.

Pre-conditions

Không có

Page 39: Do an Tot Nghiep Dien Toan Dam May_ Android

Post-conditions

Danh sách các Application theo các tiêu chí đã lựa chọn, người dùng có thể click vào ứng dụng hiện trên danh sách để xem chi tiết

Normal-Flows

Use case này sẽ bắt đầu khi người dùng truy cập vào kho ứng dụng

Người dùng có thể click vào các button trên giao diện kho ứng dụng để xem các danh sách ứng dụng được phân loại theo các tiêu chí như hot,top, game, …

Exceptions Không có ngoại lệ

Bảng 3-5: Mô tả usecase View List App

View Detail App

Actor Customeer

Description Chức năng cho phép Customer có thể xem thông tin chi tiết của ứng dụng sau khi click vào ứng dụng trên danh sách ứng dụng. Chi tiết ứng dụng bao gồm các thông tin icon, price, number download, description, screenshot, vote, comment.

Pre-conditions

Người dùng click vào một ứng dụng trên danh sách ứng dụng

Post-conditions

Các thông tin chi tiết của một ứng dụng được đưa ra bao gồm : mô tả, ảnh icon, ảnh screenshot, bình chọn và bình luận, giá …

Normal-Flows

Use case bắt đầu khi người dùng click vào một ứng dụng có trên list ứng dụng được phân loại theo tiêu chí nào đó

Thông tin chi tiết của ứng dụng được đưa ra hiển thị trên các đối tượng đồ họa.

Exception Không có ngoại lệ.

Bảng 3-6: Mô tả use case View Detail App

Search

Actor Customer

Description Chức năng cho phép người sử dụng tìm kiếm ứng dụng theo cụm từ nằm trong tên của ứng dụng.

Pre-conditions

Người dùng click vào nút search của điện thoại

Post-conditions

Danh sách ứng dụng thỏa mãn điều kiện search được đưa ra dưới dạng list trên điện thoại

Page 40: Do an Tot Nghiep Dien Toan Dam May_ Android

Normal-Flows

Use case được bắt đầu khi người dùng click vào nút search trên điện thoại, hoặc button trên giao diện người dùng

Người dùng gõ điều kiện search vào ô search được hiện lên trên điện thoại.

Người dùng click vào nút search để thực hiện tìm kiếm

List ứng dụng thỏa mãn yêu cầu được đưa ra

Exception Không có ngoại lệ

Bảng 3-7 : Mô tả use case Search

Buy/ Pay :

Actor Customer, Developer,Paypal Service

Description Chức năng cho phép người sử dụng mua ứng dụng và thanh toán với các ứng dụng có phí. Người sử dụng được kết nối với paypal service được tích hợp vào hệ thống, Người sử dụng phải đăng nhập tài khoản paypal và tiến hành thanh toán song song, tức là gửi tiền vào Store và nhà phát triển ứng dụng theo một tỷ lệ nhất định.

Pre-conditons

Người dùng click vào nút Buy hiện trên ứng dụng có phí

Post-conditions

Thanh toán được thực hiện thành công trên server của Paypal, file nguồn ứng dụng được down về điện thoại

Normal-Flows

Use case được bắt đầu khi người dùng click vào nút Buy có trên ứng dụng có phí

Người dùng nhập tài khoản paypal vào form đăng nhập

Khi đăng nhập thành công, màn hình hiển thị nút Pay , người dùng click vào nút Pay để tiến hành thanh toán. Nếu muốn hủy giao dịch, người dùng có thể bấm nút cancel

Thanh toán thành công, màn hình điện thoại trở về chi tiết ứng dụng, đồng thời file nguồn ứng dụng được tải về điện thoại.

Exception Không có ngoại lệ

Bảng 3-8 : Mô tả use case Buy/Pay

Download :

Actor Customer

Description Chức năng cho phép người sử dụng có thể tải ứng dụng trực tiếp từ kho ứng dụng về chiếc điện thoại của mình. Ứng dụng free có thể tải ngay, còn ứng dụng có phí phải thanh toán thành

Page 41: Do an Tot Nghiep Dien Toan Dam May_ Android

công.

Pre-conditions

Người dùng click vào nút Download với ứng dụng miễn phí và đã thanh toán thành công với ứng dụng trả tiền

Post-condition

File .apk được tải về điện thoại

Normal-flows

Use case được bắt đầu khi người dùng click vào nút Download có trên ứng dụng miễn phí và thanh toán thành công với ứng dụng có phí

File .apk của ứng dụng được tải về

Ứng dụng được cài đặt trên điện thoại

Exception Không có ngoại lệ

Bảng 3-9 : Mô tả use case Download

Add Application :

Actor Developer

Description Chức năng cho Developer (nhà phát triển phần mềm) có thể upload ứng dụng của mình lên hệ thống kho ứng dụng được lưu trữ trên cloud. Người sử dụng phải điền đầy đủ thông tin của ứng dụng và upload các file mã nguồn (.apk) và các file ảnh icon, screenshot.

Pre-conditons

Developer đăng nhập vào hệ thống và chọn tab Add App trên Web portal của hệ thống

Post-conditons

Danh sách các App của nhà phát triển được đưa ra

Normal-flows

Use case bắt đầu khi nhà phát triển chọn Add App trên menu

Nhà phát triển điền đầy đủ thông tin vào web form, tải toàn bộ file nguồn của ứng dụng, các file ảnh icon, screenshots

Nhà phát triển click vào nút Add để hoàn tất

Nếu thành công, web portal chuyển trang chứa danh sách toàn bộ ứng dụng của nhà phát triển

Exception Không có ngoại lệ

Bảng 3-10: Mô tả use case Add Application

View Own App

Actor Developer

Page 42: Do an Tot Nghiep Dien Toan Dam May_ Android

Description Chức năng cho Developer (nhà phát triển phần mềm) có thể xem thông tin ứng dụng của mình đã upload lên kho ứng dụng.

Pre-conditons

Nhà phát triển đăng nhập và chọn tab View App trên menu của Web portal

Post-conditon

Danh sách ứng dụng của nhà phát triển

Normal-flows

Use case được bắt đầu khi nhà phát triển chọn View App

Dữ liệu được load từ cơ sở dữ liệu và đưa ra một danh sách với một số thông tin cơ bản của những ứng dụng mà nhà phát triển đã tải lên.

Exception Không có ngoại lệ

Bảng 3-11 : Mô tả use case View Own App

Page 43: Do an Tot Nghiep Dien Toan Dam May_ Android

3.2.4 Thiết kế cơ sở dữ liệu :

Cơ sở dữ liệu sau khi đã được phân tích và chuẩn hóa sẽ kết quả như sau :

Hình 3- 5: Bảng cơ sở dữ liệu của hệ thống

Bảng App

Bảng mô tả ứng dụng trong kho ứng dụng

Tên cột Kiểu dữ liệu nulls PK Mô tả

AppID Integer no    yes Mã ứng dụng

AppName varchar(50) no    Tên ứng dụng

Title varchar(50) No Tiêu đề ứng dụng

KeyWord Varchar(50) No Từ khóa cho ứng dụng

Description Varchar(1000) No Mô tả ứng dụng

Price Float No Giá ứng dụng

LanguageID Integer No Mã ngôn ngữ

Page 44: Do an Tot Nghiep Dien Toan Dam May_ Android

CategoryID Integer No Mã loại ứng dụng

DeviceID Integer No Mã thiết bị hỗ trợ

DevID Integer No Mã nhà phát triển

ReleaseDate Date No Ngày upload ứng dụng

VersionID Integer No Mã phiên bản hỗ trợ

DownloadNumber Integer No Số lượng download

AppIcon Blob No Icon của ứng dụng

AppScreenShot Blob No ScreenShot của ứng dụng

AppSource Blobstore No File nguồn của ứng dụng

Bảng 3-12 : Bảng App

Bảng Device

Bảng lưu trữ các thiết bị mà ứng dụng có thể chạy trên đó như Phone, Tablet …

Tên cột Kiểu dữ liệu nulls PK Mô tả

DeviceID integer no    yes  Mã thiết bị

DeviceName Varchar(50) no     Tên thiết bị

Bảng 3-13 : Bảng Device

Bảng Version

Bảng lưu trữ phiên bản hệ điều hành nhỏ nhất mà ứng dụng có thể chạy trên đó, như 1.6, 2.1, 2.3.2 …

Tên cột Kiểu dữ liệu nulls PK Mô tả

VersionID integer no    yes  Mã phiên bản

VersionName Varchar(10) no     Tên phiên bản

Bảng 3-14: Bảng Version

Page 45: Do an Tot Nghiep Dien Toan Dam May_ Android

Bảng LanguageBảng lưu trữ ngôn ngữ mà ứng dụng hỗ trợ như Vietnamese, English…

Tên cột Kiểu dữ liệu nulls PK Mô tả

LanguageID integer no    yes  Mã ngôn ngữ

LanguageName Varchar(50) no     Tên ngôn ngữ

Bảng 3-15 : Bảng Language

Bảng Country

Bảng lưu trữ quốc gia của các nhà phát triển như Vietnam,China,England …

Tên cột Kiểu dữ liệu nulls PK Mô tả

CountryID integer no    yes  Mã quốc gia

CountryName Varchar(50) no     Tên quốc gia

Bảng 3-16 : Bảng Country

Bảng Role

Bảng lưu trữ quyền của người dùng (User), như Admin, Customer, Developer …

Tên cột Kiểu dữ liệu nulls PK Mô tả

RoleID integer no    yes  Mã quyền

RoleName Varchar(50) no     Tên quyền

Bảng 3-17: Bảng Role

Bảng User

Bảng lưu trữ thông tin người dùng

Tên cột Kiểu dữ liệu nulls PK Mô tả

UserID integer no  yes  Mã người dùng

UserName Varchar(50) no     Tên người dùng

FullName Varchar(50) No Tên đầy đủ người dùng

Email Varchar(50) No Email người dùng

Mobile Varchar(20) No Điện thoại người dùng

RoleID Integer No Mã quyền

Bảng 3-18 : Bảng User

Page 46: Do an Tot Nghiep Dien Toan Dam May_ Android

Bảng Customer

Bảng mô tả thông tin khách hàng

Tên cột Kiểu dữ liệu nulls PK Mô tả

CustomerID integer no    yes  Mã khách hàng

UserID integer no     Mã người sử dụng

Avatar Blob No Avatar khách hàng

Bảng 3-19 : Bảng Customer

Bảng Developer

Bảng mô tả thông tin nhà phát triển

Tên cột Kiểu dữ liệu nulls PK Mô tả

DeveloperID integer no    yes  Mã nhà phát triển

Address1 Varchar(100) no     Địa chỉ 1 của nhà phát triển : như tên đường, số nhà …

Address2 Varchar(100) No Địa chỉ 2 của nhà phát triển : như số phòng, tòa nhà …

City Varchar(50) No Tên thành phố

Province Varchar(50) No Tên tỉnh, bang

PostalCode Varchar(10) No Mã bưu chính

Company Varchar(50) No Tên công ty

Website Varchar(50) No Tên website của nhà phát triển

PaypalAccount Varchar(50) No Tên tài khoản paypal của nhà phát triển dùng để thanh toán

UserID Integer No Mã nhà phát triển

CountryID Integer No Mã quốc gia

Bảng 3-20 : Bảng Developer

Bảng Customer_App

Bảng mô tả thông tin về mua ứng dụng của khách hàng, là bảng trung gian để từ đó truy xuất tới quá trình mua ứng dụng.

Tên cột Kiểu dữ liệu nulls PK Mô tả

Customer_AppID integer no    yes  Khóa chính của bảng, tự

Page 47: Do an Tot Nghiep Dien Toan Dam May_ Android

tăng

CustomerID integer no     Mã khách hàng

AppID Integer No Mã ứng dụng

DateBuy Date No Ngày mua

Bảng 3-21 : Bảng Customer_App

Bảng AppComment

Bảng mô tả comment,bình chọn của người dùng đối với ứng dụng.

Tên cột Kiểu dữ liệu nulls PK Mô tả

AppCommentID integer no    yes  Khóa chính tự tăng của bảng

CommentContent Varchar(100) no     Nội dung comment

Votes integer No Số lượng bình chọn

CustomerName Varchar(50) No Tên khách hàng

AppID Integer No Mã ứng dụng

DatePost Date No Ngày post

Bảng 3-22 : Bảng AppComment

Page 48: Do an Tot Nghiep Dien Toan Dam May_ Android

3.2.5 Biểu đồ tuần tự

3.2.5.1 Add Application

Biểu đồ miêu tả quá trình upload một app của nhà phát triển lên kho ứng dụng. Nhà phát triển truy cập vào portal của hệ thống, tiến hành đăng nhập và chỉ khi đăng nhập thành công, nhà phát triển có thể vào form điền đầy đủ thông tin của App và upload các file mã nguồn và các file liên quan đến ứng dụng của mình.

Hình 3-6:Biểu đồ tuần tự Add Application

Page 49: Do an Tot Nghiep Dien Toan Dam May_ Android

3.2.5.2 Access/Search :

Biểu đồ miêu tả quá trình người dùng thao tác với kho ứng dụng trên điện thoại của mình. Để xem thông tin hay tìm kiếm ứng dung, người dùng cần phải bấm vào các menu, các button để truyền sự kiện vào hệ thống. Nó sẽ gọi web service để lấy dữ liệu từ datastore, phản hồi lại thông tin và được hiển thị ra màn hình của chiếc điện thoại người sử dụng.

Hình 3- 7: Biểu đồ tuần tự Access/Search

Page 50: Do an Tot Nghiep Dien Toan Dam May_ Android

3.2.5.3 Buy App

Biểu đồ mô tả quá trình mua ứng dụng của người sử dụng điện thoại được thanh toán qua paypal. Thư viện của Paypal cung cấp cho Android sẽ được khởi tạo khi người sử dụng click vào nút Buy trên điện thoại. Nó sẽ gọi các tham số từ web service và chuyển đến paypal server để khởi tạo các giá trị cần thiết. Người dùng sẽ đến với màn hình login ngay trên điện thoại để đăng nhập tài khoản. Sau khi đăng nhập thành công, người dùng click vào nút pay để thanh toán. Quá trình thanh toán được thực hiện song song, tức là nó sẽ chia số tiền thanh toán của người sử dụng thành 2 phần theo tỉ lệ mà kho ứng dụng quy định để gửi vào tài khoản người lập trình và tài khoản của kho ứng dụng.

Hình 3-8:Biểu đồ tuần tự chức năng Buy App

Page 51: Do an Tot Nghiep Dien Toan Dam May_ Android

3.2.6 Thiết kế giao diện :

Hệ thống gồm hai thành phần trong đó có thành phần trên mobile và thành phần trên Web. Trong đó thành phần trên Web phục vụ cho mục đích đăng ký và thao tác của các nhà phát triển phần mềm. Vì vậy Web portal được thiết kế tương đối thân thiện và đơn giản, với hệ thống menu ngang và các Web Form khá đẹp và sáng sủa, sử dụng CSS cùng với jquery để thực hiện. Ngoài ra màu sắc của web portal là màu đen- trắng, thể hiện sự đơn giản và dễ sử dụng.

Hình 3- 9: Form đăng ký User trên Web Portal

Page 52: Do an Tot Nghiep Dien Toan Dam May_ Android

Hình 3- 10: Form Add App trên Web Portal

Page 53: Do an Tot Nghiep Dien Toan Dam May_ Android

Hình 3- 11: Form My App trên Web Portal

Phần ứng dụng trên mobile là nơi mà người sử dụng truy xuất vào kho ứng dụng, là trọng tâm trong việc thiết kế giao diện của hệ thống. Giao diện phải thiết kế đặc trưng cho mobile là thiết kế hợp lý, thân thiện, thao tác đơn giản đối với người dùng mobile, phải được thiết kế phù hợp với kích thước màn hình phổ biến cho các smartphone Android. Ngoài ra yêu cầu của thiết kế giao diện phải đẹp, mang tính thẩm mỹ cao và có điểm nhấn, gây ấn tượng và tạo sự ham thích cho người dùng. Giao diện trên Android được bố trí thành các layout được định nghĩa dưới dạng xml. Nó kết hợp các đối tượng GUI như listview, textview, scrollview, button và các dạng layout khác nhau được bố trí hợp lý trên màn hình.

Kho ứng dụng sẽ được thiết kế có một menu ngang, là nơi lựa chọn xem ứng dụng theo các phân loại như top, hot hoặc theo category. Bên dưới là dạng listview , có thể để dưới dạng table để chia đôi màn hình để hiển thị các phân loại khác nhau . Kết quả thiết kế giao diện như sau :

Page 54: Do an Tot Nghiep Dien Toan Dam May_ Android

Hình 3- 12:Danh sách ứng dụng khi truy cập vào BK Store trên Emulator

Hình 3- 13: Danh sách ứng dụng theo Category trên Emulator

Page 55: Do an Tot Nghiep Dien Toan Dam May_ Android

Hình 3- 14: Chi tiết ứng dụng trên Emulator

Kết chương 3 :

Trong chương 3,NV đã trình bày những vấn đề liên quan đến kiến trúc hệ thống, trình bày chi tiết quá trình phân tích thiết kế hệ thống, từ phân tích usecase, đến thiết kế dữ liệu, thiết kế giao diện. Như vậy hệ thống đã được xây dựng kiến trúc cũng như được hoàn thành phân tích thiết kế. Trong chương tiếp theo,NV sẽ trình bày về các vấn đề cài dặt của hệ thống.

Page 56: Do an Tot Nghiep Dien Toan Dam May_ Android

Chương 4 : Cài dặt và kết quả thử nghiệm

Theo các kết quả phân tích thiết kế của chương trước, đến chương này NV sẽ trình bày phần cài đặt các module của ứng dụng. Ngoài ra NV sẽ trình bày các kết quả đạt được, phần giao diện của kho ứng dụng BK Store và các kết quả thử nghiệm. Chương 4 gồm các đề mục sau :

4.1 Cài đặt

4.2 Kết quả đạt được và thử nghiệm:

4.1 Cài đặtTrong phần này, NV sẽ trình bày các vấn đề liên quan đến cài đặt, từ công nghệ sử dụng (bao gồm các ngôn ngữ lập trình) để cài đặt các module, các công cụ (IDE, library) đến câu trúc cài đặt, cấu trúc về dữ liệu và các thuật toán, các vấn đề quan trọng phải giải quyết khi cài đặt hệ thống.

4.1.1 Công nghệ sử dụng

- Google app engine (Python)

- Android

- Web service : XML –RPC

- Web : Html, javascript, css …

4.1.2 Công cụ sử dụng

- SDK : Android SDK, Google App Engine (Python) SDK

- IDE : Eclipse, Notepad++

- Libarary : Mobile Payments Library (Paypal)

Page 57: Do an Tot Nghiep Dien Toan Dam May_ Android

4.1.3 Cấu trúc cài đặt :

Hình 4-4:Cấu trúc cài đặt hệ thống

Hệ thống gồm có hai thành phần chính là Web Portal trên nền tảng Google app engine, được đặt trên cloud và kho ứng dụng trên Android. Web portal ngoài kiến trúc 3 tầng gồm DataAccess, Bussiness,Presentation thì còn gồm có Web service để phục vụ lời gọi từ phía client trên Android. Trên Android, gồm có các module GUI là giao diện người dùng trên điện thoại, còn có module XML Parse để phân tích dữ liệu từ web service và thư viện MPL, thư viện của Paypal trên Android để thanh toán trực tuyến.

4.1.4 Cấu trúc dữ liệu

Lưu trữ dữ liệu trên cloud

Vấn đề: Phương án lưu trữ dữ liệu trên cloud.

Hướng giải quyết: sử dụng google app engine

Vấn đề lưu trữ trên cloud là một khái niệm trưu tượng, khó hình dung , do đó các hãng công nghệ lớn đã bắt tay vào lĩnh vực này để xây dựng các PAAS phục vụ cho nhà phát triển, trong đó, google app engine l à dịch vụ cho phép sử dụng miễn phí một số lượng nhất định (500MB lưu trữ) và cho phép số lượng truy cập là 5 triệu lượt/ s. Tuy nhiên, cùng với lợi thế đó là sự phụ thuộc vào chuẩn dữ liệu mà google đưa ra, được gọi là GQL.. Các thuộc tính chính của GQL:

Page 58: Do an Tot Nghiep Dien Toan Dam May_ Android

Hình 4-5: Cấu trúc dữ liệu của DataStore

Trong GQL không có khái niệm bảng, tất cả đều là các Entities (thực thể). Khi khởi tạo một thực thể, sẽ tự tạo thêm trường key, ID, keyname. Cách khởi tạo một entities:

class User(db.Model):

UserName = db.UserProperty()

FullName = db.StringProperty(required = True)

Email = db.StringProperty(required = True)

Mobile = db.StringProperty(required = True)

RoleID = db.ReferenceProperty(Role, required=True)

Trong GQL không có khái niệm join giữa các thực thể mà được thay thế bởi các trường ReferenceProperty.

class Role(db.Model):

RoleName = db.StringProperty(required=True)

class User(db.Model):

UserName = db.UserProperty()

FullName = db.StringProperty(required = True)

Page 59: Do an Tot Nghiep Dien Toan Dam May_ Android

Email = db.StringProperty(required = True)

Mobile = db.StringProperty(required = True)

RoleID = db.ReferenceProperty(Role, required=True) Trong đó RoleID là thuộc tính reference trong thực thể User, chỉ đến class Role.

4.1.5 Giải thuật4.1.5.1 Viết webservice trên cloud:

Hướng giải quyết: sử dụng phương thức truyền theo kiểu XML-RPC. XML-RPC là một giao thức gọi từ xa qua internet. XML-RPC là mọt dạng của HTTP-POST. Giá trị truyền đi là một xâu XML. XML-RPC có thể truyền dữ liệu dạng string, date, array, list.

Hình 4-6: Cấu trúc của XML-RPC.

Định dạng trả về của XML-RPC:

Page 60: Do an Tot Nghiep Dien Toan Dam May_ Android

Hình 4-7:Định dạng của XML- RPC

Trong đó trong <methodCall> </methodCall> là tên hàm cần gọi.

<name></name> là tên đối tượng trả về

<value></value> là giá trị trả về ứng với từng đối tượng.

Sử dụng ngôn ngữ python trong google appengine, kết hợp với thư viện xmlrpcserver.py, để thực hiện hàm web service

4.1.5.2 Kết nối và thực thi web service với Android: Để liên lạc qua web service qua giao thức XML-RPC, ta thực hiện các bước

như sau :- Sử dụng thư viện org.xmlrpc.android để nhận được giá trị trả về từ web

service.

- Phân tích chuỗi XML nhận được và lấy về giá trị như sau :

Page 61: Do an Tot Nghiep Dien Toan Dam May_ Android

Hình 4-8: Cài đặt phân tích chuỗi XML nhận được

4.1.5.3 Tích hợp Paypal vào ứng dụng AndroidĐể tích hợp thanh toán trên paypal cho Android, ta sử dụng thư viện MPL (Paypal Mobile Payments Library) bằng cách sử dụng file thư viện PayPal_MPL.jar được tải trực tiếp trên trang X.com và được thêm vào ứng dụng Android.MPL cung cấp một cách dễ dàng để tích hợp thanh toán vào trong ứng dụng Android. Khi người mua tạo ra một thanh toán, thư viện sẽ thực hiện logging vào trong hệ thống service của Paypal và thực hiện reviewing, hoàn tất quá trình thanh toán. Sau khi hoàn tất quá trình thanh toán, thư viện sẽ trở lại ứng dụng của người mua đang thao tác.Các bước tích hợp vào paypal vào ứng dụng Android :- Khai báo trong AndroidManifest.xml- Add thư viện và import các class cần dùng- Sử dụng các method được cung cấp dưới dạng API

Paypal có các hình thức thanh toán là : Simple, Parallel và Chained Payments. Trong kho ứng dụng này, ta sẽ sử dụng hình thức thanh toán song song ( Parallel Payments):

Page 62: Do an Tot Nghiep Dien Toan Dam May_ Android

Hình 4-9:Sơ đồ Parallel Payment

Thanh toán song song cho phép tạo thanh toán cho một số lượng người nhận nào đó. Một thanh toán song song được tạo ra sẽ không có người nhận chính mà các người nhận có vai trò bình đẳng. Khi thanh toán, trên giao diện người sử dụng sẽ có chi tiết từng người nhận .Việc khởi tạo thư viện có thể thực hiện như sau :

Người mua thực hiện thanh toán song song như sau :

Khi khởi tạo được thư viện thành công và truyền vào Intent khi người mua thanh toán, thì màn hình đăng nhập tài khoản paypal sẽ hiện trên chiếc điện thoại thông minh của người sử dụng. Người sử dụng chỉ cần điền tên tài khoản paypal, mật khẩu .Nó sẽ gọi đến service của Paypal để tiến hành thanh toán

Page 63: Do an Tot Nghiep Dien Toan Dam May_ Android

Hình 4 - 10:Màn hình hiển thị quá trình thanh toán bằng Paypal

4.2 Kết quả đạt được và thử nghiệm:

Trong phần này NV sẽ trình bày các kết quả đạt được sau quá trình cài đặt thành công. Người luận văn cũng sẽ trình bày một số kết quả thử nghiệm.

4.2.1 Các kết quả đạt được :Hệ thống bao gồm Web Portal và BKStore được cài đặt trên các điện thoại Android.

a) Web Portal:Web Portal đã được xây dựng thành công trên nền tảng Google App Engine dành cho Python. Web Portal cũng đã đáp ứng đầy đủ mục tiêu là cổng thông tin của hệ thống, giúp cho người dùng có thể tải về ứng dụng , các nhà phát triển có thể đăng ký và up ứng dụng của mình lên. Web Portal đã được lưu trữ trên hosting của Google với dữ liệu đặt trên trung tâm dữ liệu của Google và đã kích hoạt tính năng thanh toán cho ứng dụng, vì vậy có thể sử dụng không hạn chế các tính năng của GAE, đặc biệt là lưu trữ dạng blobstore. Có thể truy cập theo địa chỉ: http://androidstore2011.appspot.com

Page 64: Do an Tot Nghiep Dien Toan Dam May_ Android

Giao diện Web Portal :Giao diện đã được trình bày trong phần thiết kế giao diện,NV sẽ chỉ dưa ra hình ảnh trang chủ của Web Portal.

Hình 4-11: Trang chủ của Web Portal

b) BKStore :

BKStore là ứng dụng được cài đặt trên điện thoại di động Android, hỗ trợ Android từ phiên bản 2.2. BKStore có thể được tải trực tiếp từ Web Portal cả hệ thống hoặc các diễn đàn chia sẻ khác. BKStore đã chạy thành công trên emulator và chạy trên mượt mà trên dòng điện thoại Galaxy Mini của SamSung với kích thước màn hình là 3 ich. Ứng dụng có trên BKStore sẽ được lấy từ việc gọi Web service, với dữ liệu đã được lưu trữ trên trung tâm dữ liệu của

Page 65: Do an Tot Nghiep Dien Toan Dam May_ Android

Google. Giao diện cài đặt trên Emulator đã được NV đưa ra ở phần thiết kế giao diện của chương trước, sau đây là các hình ảnh của ứng dụng trên chiếc điện thoại Galaxy Mini của SamSung :

Hình 4 - 12:Giao diện kho ứng dụng trên SamSung Galaxy Mini

Page 66: Do an Tot Nghiep Dien Toan Dam May_ Android

Hình 4 -113: Danh sách ứng dụng theo loại Game trên SamSung Galaxy Mini

Page 67: Do an Tot Nghiep Dien Toan Dam May_ Android

Hình 4 - 14:Chi tiết ứng dụng trên SamSung Galaxy Mini

BKStore đã được đưa lên một số diễn đàn về Android như vietandroid.com , g-android.com, tinhte.vn … để giới thiệu cho người dùng cũng như chờ đợi các ý kiến phản hồi, đóng góp cho kho ứng dụng. Trong thời gian tới, hi vọng sẽ thu hút được các cộng đồng phát triển ứng dụng cho Android tải ứng dụng lên Web Portal đồng thời thu hút được đóng góp của người dùng cho BKStore trước khi tiến hành thương mại hóa

Page 68: Do an Tot Nghiep Dien Toan Dam May_ Android

4.2.2 Một số kết quả kiểm thử :

Kiểm thử ứng dụng là hoạt động khảo sát thực tiễn sản phẩm trong đúng môi trường chúng dự định sẽ được triển khai để có được những thông tin về chất lượng của sản phẩm. Mục đích của kiểm thử ứng dụng là tìm ra các lỗi hay khiếm khuyết của ứng dụng nhằm đảm bảo hiệu quả hoạt động tối ưu của ứng dung trong quá trình triển khai, mang lại lợi ích lớn nhất cho tất cả các bên liên quan.

Trong phần này NV sẽ trình bày một số kết quả kiểm thử

a) Kiểm thử đơn vị :Yêu cầu giao diện :

STT Yêu cầu test Yêu cầu kết quả KQ

1 Tìm kiếm các ứng dụng phù hợp với tên mà người dùng nhập vào

Hiển thị ra một danh sách các ứng dụng thỏa mãn yêu cầu

YES

2 Cho phép người dùng xem danh sách ứng dụng theo các tiêu chí khác nhau như hot, top, category

Hiển thị tất cả các ứng dụng theo đúng tiêu chí đã lựa chọn

YES

3 Cho phép người dùng xem thông tin chi tiết từng ứng dụng

Hiển thị đầy đủ thông tin các ứng dụng ra màn hình phù hợp với kích thước màn hình, không thiếu chữ …

YES

Bảng 4 - 1 : Bảng Kiểm thử giao diện

Mô tả tình huống test

Tình huống Dữ liệu test Yêu cầu kết quả KQNhập thiếu dữ liệu khi đăng ký user

Nhập thiếu một hoặc nhiều trường trên form đăng ký

Trên form phải thông báo lỗi cho người dùng biết các yêu cầu còn thiếu để nhập thêm

YES

Nhập thiếu dữ liệu khi up ứng dụng

Nhập thiếu một hoặc nhiều trường trên form đăng ký

Trên form phải thông báo lỗi cho nhà phát triển biết các yêu cầu còn thiếu để nhập thêm

YES

Không nhập dữ liệu khi tìm kiếm ứng dụng

Không chuyển sang Activity khác YES

Đăng ký user thành công

Hiện lên thông báo đăng ký thành công, thông báo chuyển về trang chủ để có đủ quyền như đăng ký của nguwoif sử dụng

YES

Upload ứng dụng thành công

Hiện lên thông báo upload thành công, đồng thời chuyển về trang theo dõi các app của nhà phát triển, đã cập nhật thêm app mới upload

YES

Tải ứng dụng về điện thoại với ứng dụng miễn phí

Ứng dụng được tải về điện thoại trực tiếp, có thông báo đang tải ứng dụng về

YES

Mua ứng dụng thành Ứng dụng được tải về điện thoại YES

Page 69: Do an Tot Nghiep Dien Toan Dam May_ Android

côngUpload file nguồn ứng dụng không phải file dạng .apk, các file icon, screenshot không phải file ảnh

Hiển thị thông báo lỗi trên form, yêu cầu tải đúng dịnh dạng

NO

Download ứng dụng Tăng số lượt download cho ứng dụng

YES

Bảng 4 - 2 :Bảng kiểm thử các tình huống test

b) Kiểm thử tích hợp

Tính đầy đủ của hệ thống

Trường hợp Yêu cầu Kết quả

Quản lý user Thêm, xóa, sửa người dùng NoQuản lý app Thêm xóa , sửa application No

Bảng 4 - 3 : Bảng kiểm thử tính đầy đủ hệ thống

Quản trị cơ sở dữ liệu

Trường hợp Yêu cầu Kết quả

Thêm user khi dăng ký Add một record mới trong bảng user đồng thời thêm vào bảng Developer hoặc bảng Customer

YES

Upload ứng dụng Thêm một record vào bảng App

Yes

Download ứng dụng Update lại trường DownloadNumber tăng thêm 1 lượt

Yes

Khi người dùng Comment Thêm một record vào bảng AppComment

Yes

Bảng 4 - 4 : Bảng kiểm thử quản trị cơ sở dữ liệu

Page 70: Do an Tot Nghiep Dien Toan Dam May_ Android

Kết chương 4:

Trong chương 4, NV đã trình bày toàn bộ các cài đặt cho hệ thống, đã bao gồm các bước giải quyết các vấn đề đặt ra khi tiến hành cài đặt. Chương này cũng trình bày các kết quả đạt được từ Web Portal đến BKStore, đưa ra một số kiểm thử và một số đánh giá cho hệ thống. Chương 4 cũng là chương cuối cùng của báo cáo đồ án và hoàn thành các bước trong quá trình xây dựng hệ thống . NV xin dừng nội dung chính của báo cáo tại đây và sẽ trình bày phần kết luận, tổng kết toàn bộ báo cáo ở phần sau.

Page 71: Do an Tot Nghiep Dien Toan Dam May_ Android

Kết luận và hướng phát triển

Tóm lại có thể thấy kho ứng dụng cho di động, đặc biệt là cho nền tảng mở, phân mảnh nhiều như Android có những tiềm năng phát triển và có rất nhiều cơ sở để thành công. Trong xu hướng phát triển mạnh mẽ của các thiết bị di động, các phần mềm cho di động thì kho ứng dụng ra đời vừa tạo điều kiện cho người sử dụng di động có thể tìm kiếm, mua các ứng dụng được dễ dàng, vừa có thể thúc đẩy ngành công nghệ phần mềm xây dựng ứng dụng cho di động, đem lại nhiều nguồn lợi cho nhà lập trình. Tuy nhiên xây dựng được kho ứng dụng lớn mạnh, thực sự thành công trên thị trường, đặc biệt là thị trường Việt Nam thì cũng đầy khó khăn, cần phải có những hướng thương mại hóa độc đáo cũng như tận dụng những công nghệ mới nhất để đem lại hiệu năng tốt nhất cho kho ứng dụng, đem lại sự thuận tiện cho các đối tượng sử dụng kho ứng dụng.

Trong đồ án tốt nghiệp này, NV đã trình bày cụ thể từ việc tiếp cận bài toán, các hướng giải quyết vấn đề, NV cũng đưa ra mô hình bài toán, kiến trúc tổng thể và các phân tích thiết kế để xây dựng ứng dụng, từ đó đưa ra các cài đặt cho hệ thống, đưa ra giải pháp cho những vấn đề xuất hiện trong cài đặt. Cuối cùng NV đã trình bày cụ thể các kết quả đạt được, một số kiểm thử cho hệ thống, Đây là các bước chung nhất trong quá trình xây dựng phần mềm đòi hỏi một kỹ sư ngành công nghệ phần mềm, kỹ sư công nghệ thông tin phải nắm được và thực hiện đúng.

Với kho ứng dụng đã cài đặt thành công và đưa vào thử nghiệm, thì có thể thấy BKStore đã đáp ứng đầy đủ các mục tiêu đặt ra, với đầy đủ các chức năng mà một kho ứng dụng phải có. Ngoài ra kho ứng dụng cũng có những điểm nhấn như việc sử dụng điện toán đám mây, sử dụng thanh toán qua Paypal … Sau đây là một số kết quả đạt được của kho ứng dụng :

Kho ứng dụng đã chạy và hoạt động tốt trên cả emulator và thiết bị di động chạy Android như SamSung Galaxy Mini, SamSung Galaxy Ace.

Kho ứng dụng có giao diện đẹp , bố trí hợp lý và rất dễ sử dụng đối tất cả người sử dụng di động màn hình cảm ứng.

Có Web Portal là nơi các nhà phát triển có thể đăng ký tài khoản, tải ứng dụng của mình lên kho ứng dụng để bán. Ngoài ra Web Portal còn là nơi người dùng xem một số thông tin về các ứng dụng.

Web Portal được xây dựng trên nền tảng PaaS Google App Engine, ứng dụng được lưu trữ trên trung tâm dữ liệu của Google.

Kho ứng dụng hỗ trợ thanh toán quốc tế, thanh toán trực tuyến . Trong đó đã cài đặt bằng thanh toán Paypal, và có thể mở rộng ra các hình thức thanh toán khác như Google Check Out, Ngân Lượng , Bảo Kim …

Ứng dụng tải về và cài đặt thành công trên điện thoại.

Nhìn chung kho ứng dụng đã vận hành và đáp ứng các mục tiêu đặt ra, tuy nhiên có thể thấy kho ứng dụng còn nhiều hạn chế và còn phải có nhiều nâng cấp để có thể thương mại hóa và hướng phát triển của đề tài cũng chính là thương mại hóa

Page 72: Do an Tot Nghiep Dien Toan Dam May_ Android

và kinh doanh trên kho ứng dụng. Sau đây là một số hướng phát triển cho kho ứng dụng BKStore :

Thêm chức năng truy cập ứng dụng từ Web Portal, và có thể tải về ứng dụng ngay trên Web Portal khi truy cập qua điện thoại. Ngoài ra, thêm chức năng tìm kiếm ứng dụng ngay trên Web Portal. Và một số chức năng thống kê cho ứng dụng phục vụ cho nhà phát triển theo dõi ứng dụng của mình.

Tăng cường và phát triển các hình thức thanh toán quốc tế qua các trung tâm thanh toán khác như Google Check Out … hoặc của Việt Nam như Bảo Kim, Ngân Lượng, Payall. Ngoài ra có thể thêm các hình thức thanh toán qua SMS kết hợp với các hãng viễn thông, và tiến đến xây dựng hình thức thanh toán cho riêng kho ứng dụng, kết nối trực tiếp với tài khoản thẻ ngân hàng giống Itunes của Apple.

Hoàn thiện các chức năng như quản lý App, kiểm tra App tự động khi người sử dụng tải lên kho ứng dụng thông qua Web Portal

Xây dựng một số chiến lược kinh doanh sử dụng mô hình SaaS như cho thuê ứng dụng, với hình thức thanh toán đặc trưng của SaaS

Có thể mở rộng ra các nền tảng khác như cung cấp ứng dụng cho Iphone, Windows Phone 7 … hoặc các sản phẩm phi ứng dụng khác như ebook, phim, truyện …

Đưa ứng dụng lên các diễn đàn tin học có uy tín trong và ngoài nước để quảng bá, và sử dụng một số hình thức quảng cáo khác nhằm thu hút sự chú ý của người dùng và các nhà phát triển.

Trên đây là một số hướng phát triển nhằm mục đích thương mại hóa, phát triển kho ứng dụng BKStore của NV. Việc xây dựng BKStore cũng như quá trình làm đồ án tốt nghiệp, NV đã đạt được mục tiêu đề ra cho đồ án tốt nghiệp. Tuy nhiên dù rất cố gắng, đồ án tốt nghiệp cũng không tránh khỏi những hạn chế và thiếu sót trong quá trình xây dựng,và sẽ cố gắng khắc phục những hạn chế, thiếu sót đó và phát triển BKStore trong tương lai.

Page 73: Do an Tot Nghiep Dien Toan Dam May_ Android

TÀI LIỆU THAM KHẢO

[1] Ian Sommerville. Software Engineering. 2006. Addison Wesley (8th edition)[2] Munindar P. Singh and Michael N. Huhns. Service-Oriented Computing:

Semantics, Processes, Agents. 2005. Prentice-Hall[3] Patterns: Service-Oriented Architecture  and Web Services. 2004. IBM

Redbook[4] Learning UML, Sinan Si Alhir, O’Reilly[5] Giáo trình phân tích thiết kế hệ thống thông tin – Nguyễn Văn Ba[6] Tài liệu Thiết kế và xây dựng phần mềm – PGS Huỳnh Quyết Thắng[7] Tài liệu kiểm thử và đảm bảo chất lượng phần mềm – Thạc Bình Cường[8] Nguyên lý các hệ cơ sở dữ liệu – Ts Nguyễn Kim Anh

[9] Distimo-Publication-April-2011, Distimo Report[10] PayPal_MobilePaymentsLibrary_Developer_Guide, Paypal

[11] Link so sánh giữa App Store và Android Market http://www.brighthub.com/mobile/google-android/articles/63772.aspx[12] Google , http://code.google.com/appengine/docs/python/ , 20/5/2011[13] Google, http://developer.android.com/index.html last visited May 2011[14] Wikipedia , http://en.wikipedia.org/wiki/Android_Market last visited May 2011[15] Wikipeida : http://en.wikipedia.org/wiki/App_Store last visited May 2011[16] Android Việt : http://vietandroid.com/forum.php last visited May 2011