1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỀ TÀI : NGHIÊN CỨU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY. XÂY DỰNG ỨNG DỤNG ATM LOCATION TRÊN ANDROID.

77 104 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 77
Dung lượng 3,67 MB

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

Nội dung

Bao gồm các chức năng sau: Đối với người sử dụng chưa đăng nhập :  Xem vị trí tất cả các ATM , chi nhánh ngân hàng trong một thành phố  Tìm kiếm các ATM, chi nhánh ngân hàng của một n

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

Tel (84-511) 3736 949, Fax (84-511) 3842 771Website: itf.ud.edu.vn, E-mail: cntt@edu.udn.vn

LUẬN VĂN TỐT NGHIỆP KỸ SƯ

NGÀNH CÔNG NGHỆ THÔNG TIN

SINH VIÊN : NGUYỄN THANH TÙNG PHẠM QUANG PHÚC

ĐÀ NẴNG, 6/2011

Trang 2

Trang 3

Trang 4

Chúng em xin gửi lời cảm ơn chân thành đến tất cả các thầy cô trong khoa Côngnghệ thông tin cũng như các thầy cô giáo dạy trong trường Đại học Bách khoa – Đạihọc Đà Nẵng đã truyền đạt những kiến thức quý báu cho chúng em trong những nămvừa qua.

Đặc biệt, chúng em xin chân thành cảm ơn thầy giáo GV.ThS Mai Văn Hà – thuộc

bộ môn Mạng thông tin và truyền thông, khoa Công nghệ Thông tin, trường Đại họcBách khoa Đà Nẵng đã tận tình hướng dẫn, động viên và tạo mọi điều kiện tốt nhấtcho chúng em trong suốt thời gian thực hiện đề tài

Và để có kết quả như ngày hôm nay, chúng em rất biết ơn gia đình đã động viên,khích lệ, tạo mọi điều kiện thuận lợi nhất trong suốt quá trình thực hiện đề tài tốtnghiệp này

Xin chân thành cảm ơn các bạn trong khoa Công nghệ Thông tin, đặc biệt là các bạntrong lớp đã ủng hộ, giúp đỡ, chia sẽ kiến thức, kinh nghiệm và tài liệu sẵn có chonhóm chúng em trong quá trình nghiên cứu và thực hiện đề tài này

Một lần nửa xin chân thành cảm ơn!

Đà Nẵng, ngày 5 tháng 6 năm 2011

Nhóm sinh viên thực hiện

Nguyễn Thanh Tùng Phạm Quang Phúc

Trang 5

Hoàn thành đồ án này nhóm chúng tôi xin cam đoan:

1 Những nội dung trong luận văn này là do nhóm chúng tôi thực hiện dưới sự hướng dẫn trực tiếp của GV.ThS Mai Văn Hà.

2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.

3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,

nhóm chúng tôi xin chịu hoàn toàn trách nhiệm.

Đà Nẵng, ngày 5 tháng 6 năm 2011 Người cam đoan

Nguyễn Thanh Tùng Phạm Quang Phúc

Trang 6

Ngày nay, máy tính là một những phương tiện rất quan trọng, được ứng dụng trongmọi lĩnh vực Các môi trường giao tiếp đã thực sự phát triển và những khả năng củamáy tính và thiết bị di động đã tạo ra môi trường giao tiếp giúp con người có thể traođổi, tìm kiếm thông tin một cách nhanh chóng và tiện lợi.Các công ty, doanh nghiệp,ngân hàng có thể đưa ra các sản phẩm hay những thông tin về công ty mình cho kháchhàng hay các đối tác hoặc người sử dụng Vì vậy môi trường giao tiếp tốt hiện nay đãtrở thành một tiêu chuẩn tạo điều kiện cho một sản phẩm ứng dụng ra đời, tồn tại vàphát triển.

Luận văn này đề cập đến việc sử dụng các thiết bị di động để xem các thông tin địađiểm các máy ATM cũng như các chi nhánh ngân hàng Ngoài ra có thể xem các thôngtin về ngân hàng, các dịch vụ của các ngân hàng Người dùng có thể tìm đường đi đếncác máy ATM hoặc các chi nhánh ngân hàng

Do những điều kiện khách quan và thời gian có hạn mà luận văn không tránh khỏinhững thiếu sót Tuy vậy, nhóm chúng em cố gắng thực hiện tốt những vấn đề trongbài phân tích, nếu có thời gian nhiều nhóm chúng em sẽ phát triển hơn nhằm đưa ramột sản phẩm tốt hơn ứng dụng vào thực tiễn

Cuối cùng, nhóm chúng em xin chân thành cảm ơn thầy Mai Văn Hà đã tận tìnhhướng dẫn chúng em phát triển đề tài này

Đà Nẵng, ngày 5 tháng 6 năm 2011

Nhóm sinh viên thực hiện

Nguyễn Thanh Tùng Phạm Quang Phúc

Trang 7

LỜI CAM ĐOAN 5

LỜI MỞ ĐẦU 6

MỞ ĐẦU 1

1.Bối cảnh đề tài 1

2.Mục đích và ý nghĩa đề tài 1

3.Nhiệm vụ phải thực hiện 2

4.Phương pháp triển khai 2

CHƯƠNG I.CƠ SỞ LÝ THUYẾT 4

I.1 ĐIỆN TOÁN ĐÁM MÂY 4

I.1.1 Định nghĩa điện toán đám mây 4

I.1.2 Ưu và nhược điểm của cloud computing 5

I.1.2.1 Ưu điểm 5

I.1.2.2 Nhược điểm 5

I.1.3 Cấu trúc và cách thức hoạt động của "Điện toán đám mây" 6

I.1.3.1 Cấu trúc phân lớp của mô hình Điện toán đám mây 6

I.1.3.2 Cách thức hoạt động của điện toán đám mây 8

I.1.4 Mô hình điện toán đám mây 9

I.1.4.1 Các loại hình dịch vụ 9

I.1.4.2 Mô hình triển khai 10

I.1.5 Khảo sát các nhà cung cấp dịch vụ điện toán đám mây 12

I.1.6 Giải pháp được lựa chọn 12

I.1.7 Google app engine 13

I.1.7.1 Giới thiệu 13

I.1.7.2 Các thành phần chính của AppEngine 14

I.1.7.3 App Engine datastore 14

I.1.7.4 Thực thể và thuộc tính 15

I.1.7.5 Câu truy vấn và chỉ mục 15

I.1.7.6 Phiên làm việc và nhóm thực thể 16

I.1.7.7 Google Account 16

I.1.7.8 App Engine Services 16

I.1.7.9 Hạn chế 17

I.2 HỆ ĐIỀU HÀNH 17

I.2.1 Khái niệm Android 17

I.2.2 Kiến trúc Android 18

Trang 8

I.2.2.3 Libraries 19

I.2.2.4 Android Runtime 19

I.2.2.5 Linux Kernel 19

I.2.3 Các thành phần cơ bản của một ứng dụng Android 20

I.2.3.1 Activity 20

I.2.3.2 Intent 21

I.2.3.3 Service 22

I.2.3.4 Content Provider 22

I.2.3.5 View 23

I.2.3.6 Broadcast Receiver 23

I.2.3.7 File AndroidManifest.xml 23

I.3 GIỚI THIỆU GOOGLE MAPS 23

I.4 ĐỊNH VỊ TOÀN CẦU GPS 24

CHƯƠNG II.PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 26

II.1 PHÂN TÍCH HỆ THỐNG 26

II.1.1 Phân tích hiện trạng 26

II.1.2 Phân tích yêu cầu chức năng 26

II.1.2.1 Chức năng cho nhóm đối tượng người sử dụng chưa đăng nhập 26

II.1.2.2 Chức năng cho nhóm đối tượng người sử dụng đăng nhập 26

II.1.2.3 Chức năng cho nhóm đối tượng là người quản lý 26

II.1.2.4 Chức năng khác 27

II.1.3 Giải pháp công nghệ 27

II.1.3.1 Server chính cung cấp các Web Services cho các máy khách 28

II.1.3.2 Máy khách sử dụng các các dịch vụ mà máy chủ cung cấp để 28

II.2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 28

II.2.1 Xác định các tác nhân của hệ thống 28

II.2.2 Xác định các ca sử dụng của hệ thống 29

II.2.3 Đặc tả các ca sử dụng 30

Trang 9

II.2.3.6 Ca sử dụng duy trì thông tin ngân hàng 33

II.2.3.7 Ca sử dụng duy trì thông tin ATM hoặc chi nhánh ngân hàng 34

II.2.4 Tìm lớp 36

II.2.4.1 Xác định các lớp dựa vào các khái niệm của lĩnh vực ứng dụng 36

II.2.5 Các lớp chính 37

II.2.5.1 Các lớp chính trên client 37

II.2.5.2 Các lớp chính trên server 38

II.2.6 Biểu đồ lớp 39

II.2.6.1 Biểu đồ lớp cho ca sử dụng Đăng kí , Đăng nhập , Thay đổi mật khẩu , Xem thông tin cá nhân 39

II.2.6.2 Xem thông tin ngân hàng 39

II.2.6.3 Xem thông tin ATM hoặc các chi nhánh 40

II.2.6.4 Xem vị trí ATM hoặc các chi nhánh , khoảng cách , đường đi đến người sử dụng 40 II.2.6.5 Quản lí thông tin ngân hàng 40

II.2.6.6 Quản lý thông tin ATM 41

II.2.6.7 Các lớp chính 41

II.2.6.8 Xác định các lớp tham gia vào các ca sử dụng 42

CHƯƠNG III.CÀI ĐẶT VÀ TRIỂN KHAI CHƯƠNG TRÌNH 48

III.1 THỬ NGHIỆM 48

III.2 KẾT QUẢ ĐẠT ĐƯỢC 48

III.2.1 Kết quả trên module Client 48

III.2.1.1 Giao diện ban đầu của hệ thống 48

III.2.1.2 Giao diện đăng ký thành viên 49

III.2.1.3 Hiển thị thông tin người dùng đã đăng ký 49

III.2.1.4 Thay đổi mật khẩu 50

III.2.1.5 Xem danh sách, thông tin ngân hàng 50

III.2.1.6 Xem danh sách các ATM hoặc nhánh ngân hàng 52

III.2.1.7 Vị trí hiện tại người sử dụng 52

III.2.1.8 Xác định hướng đi trên bản đồ 53

III.2.1.9 Hiển thị đường cần đến trên bản đồ 53

III.2.1.10Hướng dẫn chi tiết về đường đi 54

III.2.1.11Xác định được vị trí ATM 55

III.2.2 Kết quả trên module Server 55

Trang 10

III.2.2.3 Thông tin ngân hàng, tỷ giá 56

III.2.2.4 Thêm các ATM 57

III.2.2.5 Thêm các nhánh ngân hàng 58

KẾT LUẬN 59

1.Kết quả đạt được 59

2.Nhược điểm và hạn chế 59

3.Hướng phát triển 59

PHỤ LỤC 60

TÀI LIỆU THAM KHẢO 62

Trang 11

Hình 1 : Mô hình đơn giản của điện toán đám mây 4

Hình 2 : Các lớp mô hình điện toán đám mây 6

Hình 3 : Cách thức hoạt động điện toán đám mây 8

Hình 4 : Các dịch vụ điện toán đám mây 10

Hình 5 : Mô hình triển khai điện toán đám mây 11

Hình 6 : Mô hình kiến trúc nền tảng Android 18

Hình 7 : Mô hình hợp tác giữa máy ảo Dalvik và Navite code 20

Hình 8 : Lược đồ vòng đời của 1 activity 21

Hình 9 : Sử dụng Intent để trao đổi thông tin giữa hai chương trình 21

Hình 10 : Lược đồ vòng đời của 1 Service 22

Hình 11 : Lược đồ phân cấp các chức năng 27

Hình 12 : Các công nghệ chính được sử dụng 27

Hình 13 : Vẽ biểu đồ ca sử dụng 29

Hình 14 : Biểu đồ lớp đăng ký, đăng nhập 39

Hình 15 : Biểu đồ lớp xem thông tin ngân hàng 39

Hình 16 : Biểu đồ tuần tự đăng kí hệ thống 42

Hình 17 : Biểu đồ tuần tự đăng nhập hệ thống 42

Hình 18 : Biểu đồ tuần tự theo dõi thông tin ngân hàng 43

Hình 19 : Biểu đồ tuần tự theo dõi vị trí ATM hoặc chi nhánh ngân hàng 43

Hình 20 : Biểu đồ tuần tự tìm đường đi tới các ATM hoặc nhánh Ngân hàng 44

Hình 21 : Biểu đồ tuần tự thêm ngân hàng 44

Hình 22 : Biểu đồ tuần tự xóa ngân hàng 45

Hình 23 : Biểu đồ tuần tự sửa ngân hàng 45

Hình 24 : Biểu đồ tuần tự thêm ATM hoặc nhánh ngân hàng 46

Hình 25 : Biểu đồ tuần tự xóa ATM hoặc nhánh ngân hàng 46

Hình 26 : Biểu đồ tuần tự sửa ATM hoặc nhánh ngân hàng 47

Hình 34: Kết quả màn hình đăng nhập 48

Hình 35 : Kết quả đăng ký thành viên 49

Hình 36 : Hiển thị thông tin người dùng đã đăng ký 49

Hình 37 : Thay đổi mật khẩu 50

Hình 38 : Xem danh sách các Ngân hàng 50

Hình 39 : Thêm thông tin Ngân hàng 51

Hình 40 : Xem tỷ giá ngân hàng 51

Hình 41 : Xem danh sách các ATM hoặc nhánh ngân hàng 52

Trang 12

Hình 44 : Hiển thị đường đi trên bản đồ 53

Hình 45 : Xem hướng dẫn chi tiết về đường đi 54

Hình 46 : Chi tiết đường đi 54

Hình 47 : Xác định vị trí ATM 55

Hình 48 : Tạo các ngân hàng 55

Hình 49 : Chỉnh sửa thông tin Ngân hàn 56

Hình 50 : Post thông tin ngân hàng 56

Hình 51 : Các thông tin đã đăng tải 57

Hình 52 : Thêm các ATM 57

Hình 53 : Chỉnh sửa hiển thị các ngân hàng, ATM Nhánh ngân hàng 58

Trang 13

Bảng 1 : Hổ trợ cho Developer 12Bảng 2 : Các ca sử dụng 29

Trang 14

MỞ ĐẦU

1.Bối cảnh đề tài

Trong thời đại ngày nay, toàn thế giới đang đứng trước sự phát triển mạnh mẽ củacông nghệ thông tin, giao dịch thương mại và ngân hàng, Internet….Tuy nhiên, cáccông nghệ mới trong thông tin di dộng và truyền số liệu lại là hai lĩnh vực phát triểnmạnh nhất trong dịch vụ viễn thông Nhu cầu sử dụng điện thoại di động và truy cậpInternet ngày càng phát triển hơn trong mọi lĩnh vực như công nghiệp, thương mại đờisống nó trở nên thành một yếu tố quan trọng trong sự phát triển cử xã hội và góp phầntạo ra sự bùng nổ về thông tin, liên lạc, giữa các cá nhân, tổ chức

Sự hội tụ giữa máy tính và thông tin di động đã giúp các nhà cung cấp Internet tăngnhanh số lượng dịch vụ trong tương lai.Sự hội tụ đó nhằm chuyển tải những thông tincho khách hàng một cách kịp thời ở mọi nơi, mọi lúc Sự kết hợp giữa Internet vàthông tin di động khiến cho mọi thông tin cần trao đổi, tìm kiếm một cách dể dàng vàtiện lợi

Hiện nay, nền kinh tế phát triển kéo theo ngành ngân hàng phát triển Với tốc độphát triển như hiện nay của ngành ngân hàng cùng với áp dụng nhiều công nghệ mới,ngân hàng giải quyết nhiều nhu cầu của con người Thu nhập và mức sống tăng caođòi hỏi con người gởi tiền tiết kiệm nhiều Mà ngân hàng là nơi giải quyết những yêucầu đó Áp dụng công nghệ tiên tiến ngành ngân hàng đưa ra nhiều dich vụ tiện lợi đếnkhách hàng Đặc biệt là dịch vụ thẻ ATM được sử dụng rộng rãi đến với khách hàng,tiện lợi cho việc gởi tiền cũng như rút tiền một cách nhanh chóng.Hiện nay hầu hếtviệc chi trả lương cho người lao động thông qua dịch vụ thẻ ATM

Tại Việt Nam hiện nay, tìm kiếm vị trí ATM hay ngân hàng quả là điều khó khăn.Nên vì thế cần một cầu nối trung gian hiệu quả tổng hợp thông tin, đưa các vị trí ATM

để cho khách hàng sử dụng có thể tìm kiếm vị trí ATM cũng như vị trí ngân hàng mộtcách nhanh nhất và tiện lợi

Chính vì thế ứng dụng tìm vị trí ATM và ngân hàng ra đời nhằm giải quyết cho kháchhàng sử dụng ngân hàng Người sử dụng có thể tìm đường đi đến vị trí ATM một cáchngắn nhất trên bản đồ.Đối ngân hàng có thể quảng bá ngân hàng mình trên ứng dụngcũng như các vị trí ATM

Trang 15

Người quản lý có thể đưa thông tin vị trí các máy ATM, nhánh các ngân hàng.Ngoài ra có thể đưa thông tin về ngân hàng cũng như các tin về lãi suất, tỷ giá.

Đối với người sử dụng xem vị trí ATM, nhánh ngân hàng trong thành phố Tìmđược đường đi đến các vị trí ATM, nhánh ngân hàng.Ngoài ra có thể xem các thôngtin về ngân hàng cũng như các tin về tỷ giá, lãi suất của ngân hàng muốn quan tâm Ứng dụng tuy nhỏ nhưng ra đời nhằm giải quyết nhu cầu thực tế của con người.Đối với những người đi du lịch xa có thể dể dàng tìm kiếm vị trí ATM cách nhanhnhất, tiện lợi và tiết kiệm thời gian

3.Nhiệm vụ phải thực hiện

Nghiên cứu lý thuyết công nghệ điện toán đám mây,lý thuyết hệ điều hànhandroid

Xây dựng ứng dụng ATM trên nền android Bao gồm các chức năng sau:

Đối với người sử dụng chưa đăng nhập :

 Xem vị trí tất cả các ATM , chi nhánh ngân hàng trong một thành phố

 Tìm kiếm các ATM, chi nhánh ngân hàng của một ngân hàng trong một thành phố

Đối với người sử dụng đã đăng nhập ngoài những chức năng trên còn thêm :

 Xem thông tin của ngân hàng (tỷ giá, lãi suất, những thông tin khác về ngân hàng)

Đối với người quản lý:

 Đưa thông tin ngân hàng lên hệ thống gồm tên, tỷ giá, lãi suất, thông tin

 Đưa vị trí các ATM/chi nhánh ngân hàng

4.Phương pháp triển khai

Ứng dụng được xây dựng trên những công nghệ mới và mã nguồn mở nên rất dễdàng cho các nhà phát có thể phát triển nhiều ứng dụng khác :

Server được xây dựng trên nền Google App Engine – một trong những nền tảng nổibật của mô hình Cloud Computing(điện toán đám mây) nên các chi phí về việc triểnkhai, bảo trì được giảm đến mức tối thiểu Đó là nền tảng tốt cho việc thử nghiệm cácứng dụng bằng việc cung cấp 500MB dung lượng miễn phí và băng thông lên đến 5triệu người xem trong 1 tháng Bên cạnh đó, các công nghệ mở khác được hiện thựctrên nền tảng Google App Engine là Spring framework và Flex nhằm mang đến ngườidùng một ứng dụng web có độ tương tác cao

Module trên thiết bị di động được hiện thực trên hệ điều hành Android, cũng là mộtnền tảng mã nguồn mở được phát triển bởi Google và đang phát triển mạnh mẽ nhờvào một cộng đồng phát triển lớn Hiện nay, ở Việt Nam cộng đồng Android cũngđang phát triển mạnh mẽ, kéo theo đó là sự phát triển bùng nổ của lập trình Android Nội dung Đồ án gồm các phần:

Trang 16

Chương 1 Cơ sở lý thuyết

Tổng quan lý thuyết điện toán đám mây, hệ điều hành android.

Chương 2 Phân tích và thiết kế hệ thống

Phân tích đặc tả các chức năng hệ thống, thiết kê hệ thống, thiết kế dữ liệu.

Chương 3 Kết quả demo của đề tài

Tóm tắt các chức năng xây dựng được của hệ thống.

Trang 17

CHƯƠNG I:

CƠ SỞ LÝ THUYẾT

I.1 Điện toán đám mây

I.1.1 Định nghĩa điện toán đám mây

Hiện nay, chưa có một sự thống nhất về định nghĩa Cloud computing, mỗi tổ chức haynhà cung cấp dịch vụ đều đưa ra ý kiến riêng

Theo Wikipedia

Cloud Computing là điện toán trên nền tảng Internet Các Máy Chủ cung cấp tàinguyên, phần mềm, dữ liệu, và các thiết bị khác theo yêu cầu

Theo Ian Foster

Cloud Computing là mô hình điện toán phân tán có tính co giãn linh hoạt về mặt kinh

tế, là nơi chứa sức mạnh về tính toán, lưu trữ dựa trên nền tảng và dịch vụ cung cấp sự

ảo hóa tài nguyên và thay đổi linh hoạt để phù hợp với nhu cầu khách hàng trênInternet

Theo Rajkumar Buyya

Cloud là một hệ thống phân tán và xử lý song song gồm nhiều máy tính ảo kết nối vớinhau và được cung cấp cho người dùng dựa trên thỏa thuận giữa nhà cung cấp dịch vụ

và người dùng

Có thể tóm tắt: Điện toán đám mây là môi trường tính toán dựa trên internet mà ở đótất cả phần mềm, dữ liệu, tài nguyên được cung cấp cho máy tính và các thiết bị kháctheo nhu cầu

Hình 1 : Mô hình đơn giản của điện toán đám mây

Trang 18

I.1.2 Ưu và nhược điểm của cloud computing

I.1.2.1 Ưu điểm

Những ưu điểm và thế mạnh dưới đây đã góp phần giúp "điện toán đám mây" trởthành mô hình điện toán được áp dụng rộng rãi trên toàn thế giới

Tính linh động : Người dùng có thể thoải mái lựa chọn các dịch vụ phù hợp

với nhu cầu của mình, cũng như có thể bỏ bớt những thành phần mà mình khôngmuốn (Thay vì phải bỏ ra hàng trăm USD cho 1 bộ Ms office, ta có thể mua riêng lẻtừng phần hoặc chỉ trả 1 khoản phí rất nhỏ mỗi khi sử dụng 1 phần nào đó của nó)

Giảm bớt phí : Người dùng không chỉ giảm bớt chi phí bản quyền mà còn

giảm phần lớn chi phí cho việc mua và bảo dưỡng máy chủ Việc tập hợp ứng dụngcủa nhiều tổ chức lại 1 chỗ sẽ giúp giảm chi phí đầu tư ban đầu, cũng như tăng hiệunăng sử dụng các thiết bị này một cách tối đa

Tạo nên sự độc lập : Người dùng sẽ không còn bị bó hẹp với một thiết bị hay

một vị trí cụ thể nào nữa Với điện toán đám mây, phần mềm, dữ liệu có thể được truycập và sử dụng từ bất kì đâu, trên bất kì thiết bị nào mà không cần phải quan tâm đếngiới hạn phần cứng cũng như địa lý

Tăng cường độ tin cậy : Dữ liệu trong mô hình điện toán đám mây được lưu

trữ một cách phân tán tại nhiều cụm máy chủ tại nhiều vị trí khác nhau Điều này giúptăng độ tin cậy, độ an toàn của dữ liệu mỗi khi có sự cố hoặc thảm họa xảy ra

Bảo mật : Việc tập trung dữ liệu từ nhiều nguồn khác nhau sẽ giúp các chuyên

gia bảo mật tăng cường khả năng bảo vệ dữ liệu của người dùng, cũng như giảm thiểurủi ro bị ăn cắp toàn bộ dữ liệu (Dữ liệu được đặt tại 6 máy chủ khác nhau trongtrường hợp hacker tấn công, bạn cũng sẻ chỉ bị lộ 1/6 Đây là một cách chia sẻ rủi rogiữa các tổ chức với nhau)

Bảo trì dễ dàng : Mọi phần mềm đều nằm trên server, lúc này, người dùng sẽ

không cần lo lắng cập nhật hay sửa lỗi phần mềm nữa Và các lập trình viên cũng dễdàng hơn trong việc cài đặt, nâng cấp ững dụng của mình

I.1.2.2 Nhược điểm

Tuy nhiên, mô hình điện toán này vẫn còn mắc phải một số nhược điểm sau :

Tính riêng tư : Các thông tin người dùng và dữ liệu được chứa trên điện toán

Trang 19

Mất dữ liệu : Một vài dịch vụ lưu trữ dữ liệu trực tuyến trên đám mây bất ngờ

ngừng hoạt động hoặc không tiếp tục cung cấp dịch vụ, khiến cho người dùng phảisao lưu dữ liệu của họ từ “đám mây” về máy tính cá nhân Điều này sẽ mất nhiều thờigian Thậm chí một vài trường hợp, vì một lý do nào đó, dữ liệu người dùng bị mất vàkhông thể phục hồi được

Tính di động của dữ liệu và quyền sở hữu : Một câu hỏi đặt ra, liệu người

dùng có thể chia sẻ dữ liệu từ dịch vụ đám mây này sang dịch vụ của đám mây khác?Hoặc trong trường hợp không muốn tiếp tục sử dụng dịch vụ cung cáp từ đám mây,liệu người dùng có thể sao lưu toàn bộ dữ liệu của họ từ đám mây? Và làm cách nào

để người dùng có thể chắc chắn rằng các dịch vụ đám mây sẽ không hủy toàn bộ dữliệu của họ trong trường hợp dịch vụ ngừng hoạt động

Khả năng bảo mật : Vấn đề tập trung dữ liệu trên các “đám mây” là cách thức

hiệu quả để tăng cường bảo mật, nhưng mặt khác cũng lại chính là mối lo của người sửdụng dịch vụ của điện toán đám mây Bởi lẽ một khi các đám mây bị tấn công hoặcđột nhập, toàn bộ dữ liệu sẽ bị chiếm dụng.Các quy định pháp luật cho các dịch vụ,giữa khách hàng và nhà cung cấp

I.1.3 Cấu trúc và cách thức hoạt động của "Điện toán đám mây"

I.1.3.1 Cấu trúc phân lớp của mô hình Điện toán đám mây

Về cơ bản, “điện toán đám mây” được chia ra thành 5 lớp riêng biệt, có tác động qualại lẫn nhau:

Hình 2 : Các lớp mô hình điện toán đám mây

Trang 20

Client (Lớp Khách hàng): Lớp Client của điện toán đám mây bao gồm phần

cứng và phần mềm, để dựa vào đó, khách hàng có thể truy cập và sử dụng các ứngdụng dịch vụ được cung cấp từ điện toán đám mây Chẳng hạn máy tính và đường dâykết nối Internet (thiết bị phần cứng) và các trình duyệt web (phần mềm)…

Application (Lớp Ứng dụng): Lớp ứng dụng của điện toán đám mây làm nhiệm

vụ phân phối phần mềm như một dịch vụ thông quan Internet, người dùng không cầnphải cài đặt và chạy các ứng dụng đó trên máy tính của mình, các ứng dụng dễ dàngđược được chỉnh sữa và người dùng dễ dàng nhận được sự hỗ trợ

Các đặc trưng chính của lớp ứng dụng bao gồm :

 Các hoạt động được quản lý tại trung tâm của đám mây, chứ không nằm ở phíakhách hàng (lớp Client), cho phép khách hàng truy cập các ứng dụng từ xa thông quaWebsite

 Người dùng không còn cần thực hiện các tính năng như cập nhật phiên bản, bản

vá lỗi, download phiên bản mới… bởi chúng sẽ được thực hiện từ các “đám mây”

Platform (Lớp Nền tảng): Cung cấp nền tảng cho điện toán và các giải pháp

của dịch vụ, chi phối đến cấu trúc hạ tầng của “đám mây” và là điểm tựa cho lớp ứngdụng, cho phép các ứng dụng hoạt động trên nền tảng đó Nó giảm nhẹ sự tốn kém khitriển khai các ứng dụng khi người dùng không phải trang bị cơ sở hạ tầng (phần cứng

và phần mềm) của riêng mình

Infrastructure (Lớp Cơ sở hạ tầng): Cung cấp hạ tầng máy tính, tiêu biểu là

môi trường nền ảo hóa Thay vì khách hàng phải bỏ tiền ra mua các server, phần mềm,trung tâm dữ liệu hoặc thiết bị kết nối… giờ đây, họ vẫn có thể có đầy đủ tài nguyên

để sử dụng mà chi phí được giảm thiểu, hoặc thậm chí là miễn phí Đây là một bướctiến hóa của mô hình máy chủ ảo (Virtual Private Server)

Server (Lớp Server - Máy chủ): Bao gồm các sản phẩm phần cứng và phần

mềm máy tính, được thiết kế và xây dựng đặc biệt để cung cấp các dịch vụ củađámmây Các server phải được xây dựng và có cấu hình đủ mạnh (thậm chí là rất may)

để đám ứng nhu cầu sử dụng của số lượng động đảo các người dùng và các nhu cầungày càng cao của họ

Trang 21

I.1.3.2 Cách thức hoạt động của điện toán đám mây

Để hiểu cách thức hoạt động của “đám mây”, tưởng tượng rằng “đám mây” bao

gồm hai lớp: Lớp Back-end và lớp Front-end.

Hình 3 : Cách thức hoạt động điện toán đám mây

Lớp Front-end là lớp người dùng, cho phép người dùng sử dụng và thực hiệnthông qua giao diện người dùng Khi người dùng truy cập các dịch vụ trực tuyến, họ sẽphải sử dụng thông qua giao diện từ lớp Front-end, và các phần mềm sẽ được chạytrên lớp Back-end nằm ở “đám mây” Lớp Back-end bao gồm các cấu trức phần cứng

và phần mềm để cung cấp giao diện cho lớp Front-end và được người dùng tác độngthông qua giao diện đó

Bởi vì các máy tính trên “đám mây” được thiết lập để hoạt động cùng nhau, dovậy các ứng dụng có thể sử dụng toàn bộ sức mạnh của các máy tính để có thể đạtđược hiệu suất cao nhất Điện toán đám mây cũng đám ứng đầy đủ tính linh hoạt chongười dùng Tùy thuộc vào nhu cầu, người dùng có thể tăng thêm tài nguyên mà cácđám mây cần sử dụng để đáp ứng mà không cần phải nâng cấp thêm tài nguyên phầncứng như sử dụng máy tính cá nhân Ngoài ra, với điện toán đám mây, vấn đề hạn chếcủa hệ điều hành khi sử dụng các ứng dụng không còn bị ràng buộc, như cách sử dụngmáy tính thông thường

Trang 22

I.1.4 Mô hình điện toán đám mây

I.1.4.1 Các loại hình dịch vụ

Dịch vụ hạ tầng IaaS (Infrastructure as a Service)

Dịch vụ hạ tầng IaaS cung cấp dịch vụ cơ bản, cung cấp năng lực tính toán, khônggian lưu trữ, kết nối mạng tới khách hàng Khách hàng (cá nhân hoặc tổ chức) có thể

sử dụng tài nguyên hạ tầng này để đáp ứng nhu cầu tính toán hoặc cài đặt ứng dụngriêng tùy theo mục đích sử dụng Với dịch vụ này khách hàng làm chủ hệ điều hành,không gian lưu trữ và các ứng dụng do khách hàng cài đặt Khách hàng điển hình củadịch vụ IaaS có thể là mọi đối tượng cần tới một máy tính và tự cài đặt ứng dụng củamình

Dịch vụ nền tảng PaaS (Platform as a Service)

Dịch vụ nền tảng PaaS cung cấp nền tảng điện toán cho phép khách hàng phát triển cácphần mềm, phục vụ nhu cầu tính toán hoặc xây dựng thành dịch vụ trên nền tảng đám mây

đó Dịch vụ PaaS có thể được cung cấp dưới dạng các ứng dụng lớp giữa (middleware),các ứng dụng chủ (application server) cùng các công cụ lập trình với ngôn ngữ lậptrình nhất định để xây dựng ứng dụng Dịch vụ PaaS cũng có thể được xây dựngriêng

và cung cấp cho khách hàng thông qua API riêng Khách hàng xây dựng ứng dụng vàtương tác với hạ tầng điện toán đám mây thông qua API đó Ở mức PaaS, khách hàngkhông quản lý nền tảng đám mây hay các tài nguyên lớp như hệ điều hành, lưu giữ ởlớp dưới Khách hàng điển hình của dịch vụ PaaS chính là các nhà phát triển ứng dụng.Dịch vụ App Engine của Google là một dịch vụ PaaS điển hình, cho phép khách hàngxây dựng các ứng dụng web với môi trường chạy ứng dụng và phát triển dựa trên ngônngữ lập trình Java hoặc Python

Dịch vụ phần mềm SaaS (Software as a Service)

Dịch vụ SaaS cung cấp các ứng dụng hoàn chỉnh như một dịch vụ theo yêu cầucho nhiều khách hàng Khách hàng lựa chọn ứng dụng phù hợp với nhu cầu và sửdụng mà không quan tâm tói hay bỏ công sức quản lý tài nguyên tính toán bên dưới

Dịch vụ SaaS nổi tiếng nhất phải kể đến Salesforce.com với các ứng dụng chodoanh nghiệp mà nổi bật nhất là CRM Các ứng dụng SaaS cho người dùng cuối phổbiến là các ứng dụng office Online của Microsoft hay Google Docs của Google

Trang 23

Hình 4 : Các dịch vụ điện toán đám mây

I.1.4.2 Mô hình triển khai

Đám mây “công cộng”

Mô hình đầu tiên được nói đến khi đề cập tới điện toán đám mây chính là môhình đám mây công cộng (public cloud) Đây là mô hình mà hạ tầng điện toán đámmây được một tổ chức sỡ hữu và cung cấp dịch vụ rộng rãi cho tất cả các khách hàngthông qua hạ tầng mạng internet hoặc các mạng công cộng diện rộng Các ứng dụngkhác nhau chia sẻ chung tài nguyên tính toán, mạng và lưu trữ Do vậy, hạ tầng điệntoán đám mây được thiết kế để đảm bảo cô lập về dữ liệu giữa các khách hàng và táchbiệt về truy cập

Các dịch vụ của đám mây công cộng hướng tới số lượng khách hàng lớn nênthường có năng lực về hạ tầng cao, đáp ứng nhu cầu tính toán linh hoạt, đem lại chiphí thấp cho khách hàng Do đó khách hàng của các dịch vụ trên đám mây công cộng

sẽ bao gồm tất cả các tầng lớp, trong đó khách hàng là cá nhân và doanh nghiệp nhỏ sẽđược lợi thế trong việc dễ dàng tiếp cận các ứng dụng công nghệ cao, chất lượng màkhông phải đầu tư ban đầu, chi phí sử dụng thấp, linh hoạt

Đám mây “riêng”

Đám mây riêng (private cloud) là mô hình trong đó hạ tầng đám mây được sởhữu bởi một tổ chức và phục vụ cho người dùng của tổ chức đó Đám mây riêng có thểđược vận hành bởi một bên thứ ba và hạ tầng đám mây có thể được đặt bên trong hoặcbên ngoài tổ chức sở hữu (tại bên thứ ba kiêm vận hành hoặc thậm chí là một bên thứtư) Đám mây riêng được các tổ chức, doanh nghiệp lớn xây dựng cho mình nhằm khai

Trang 24

thác ưu điểm về công nghệ và khả năng quản trị của điện toán đám mây Với đám mâyriêng, các doanh nghiệp tối ưu được hạ tầng IT của mình, nâng cao hiệu quả sử dụng,quản lý trong cấp phát và thu hồi tài nguyên, qua đó giảm thời gian đưa sản phẩm sảnxuất, kinh doanh ra thị trường.

Đám mây “chung”

Đám mây chung (community cloud) là mô hình trong đó hạ tầng đám mây đượcchia sẻ bởi một số tổ chức cho cộng đồng người dùng trong các tổ chức đó Các tổchức này do đặc thù không tiếp cận với các dịch vụ của đám mây công cộng và chia sẻchung một hạ tầng điện toán đám mây để nâng cao hiệu quả đầu tư và sử dụng

Đám mây “lai”

Mô hình đám mây lai (hybrid cloud) là mô hình bao gồm hai hoặc nhiều hơn cácđám mây trên tích hợp với nhau Mô hình đám mây lai cho phép chia sẻ hạ tầng hoặcđáp ứng nhu cầu trao đổi dữ liệu

Hình 5 : Mô hình triển khai điện toán đám mây

Trang 25

I.1.5 hảo sát các nhà cung cấp dịch vụ điện toán đám mây

GAE : Google App Engine

y : có cung cấp

n : không cung cấp

I.1.6 Giải pháp được lựa chọn

Theo nhu cầu thì loại hình dịch vụ mà nhóm sử dụng là PaaS (nền tảng dịchvụ), với mô hình triển khai là Public Cloud (đám mây chung)

Nhà cung cấp dịch vụ : nhóm chúng em quyết định chọn nhà cung cấp dịch vụ làGoogle vì những lý do sau :

Google App Engine tích hợp đầy đủ những công nghệ phổ biến hiện nay để pháttriển một ứng dụng web (xét ra thì có phần kém linh hoạt hơn so với Amazon vàRackspace) Chúng ta sẽ không cần phải lo lắng về việc mở rộng cho ứng dụng củamình vì Google sẽ đảm nhận việc này

Hạ tầng của Google đủ tốt để ta có thể tin vào khả năng đáp ứng trước những độtbiến bất ngờ có thể xảy ra

Google App Engine hỗ trợ hai môi trường phát triển ứng dụng là Java vàPython Java là ngôn ngữ đang được ưa chuộng để phát triển ứng dụng So với

Trang 26

Amazon, Salesfore, Microsoft, thì Google không có hổ trợ NET, một ngôn ngữ cũngrất được yêu thích hiện nay

Google khá thoải mái trong cách tính phí ở thời điểm hiện tại Sẽ có được 1Glưu trữ và lượng băng thông 5 triệu pageview hàng tháng hoàn toàn miễn phí Nếuvượt qua mốc này phải thực hiện trả phí Nhưng một website mới xây dựng thời gianđầu thì khó mà vượt qua được ngưỡng miễn phí này.Tuy nhiên cũng có mặt trái khi ta

sử dụng GAE đó là, Hệ thống của chúng ta phải phụ thuộc hoàn toàn vào nền tảng vàcông nghệ của Google, và rất khó để tách biệt thành một ứng dựng độc lập Nhưng vớimức độ cũng như thời điểm hiện tại, nhóm chúng em chưa cần thiết phải nghĩ ngợi xanhư vậy Do đó chúng em quyết định chọn Google App Engine làm nhà cung cấp dịch

vụ cho mình

I.1.6 Google app engine

I.1.6.1 Giới thiệu

Google App Engine (gọi tắt là AppEngine, một số trường hợp được viết tắt làGAE ) là giải pháp cho vấn đề điện toán đám mây Ở đó, Google cung cấp sẵn một hệthống máy chủ điện toán đám mây, và người lập trình sẽ viết ứng dụng của mình lên

đó Ứng dụng này sẽ chạy trên đám mây của Google

Google App Engine cho phép chạy các ứng dụng web trên cơ sở hạ tầng củaGoogle App Engine ứng dụng được dễ dàng để xây dựng, dễ bảo trì, và dễ dàng để cóquy mô như giao thông và nhu cầu lưu trữ dữ liệu lớn Với App Engine, không có máychủ để duy trì: Chỉ cần tải lên các ứng dụng và nó sẵn sàng để phục vụ người dùng

Có thể sử dụng tên miền riêng của mình (chẳng hạn như http://www.example.com/ )thông qua google apps Có thể dùng sub-domain miễn phí của appspot.com GAE chophép được host miễn phí với dung lượng 500 MB lưu trữ và cho phép 10 GB băngthông lưu chuyển mỗi ngày hay tương đương 5 triệu pageview hàng tháng,Vượt quamức này sẽ phải trả phí Dùng GAE, chúng ta khỏi phải thiết kế database, viết SQL

để truy vấn data, map data vô object Chúng ta chỉ cần design các class và GAE tựđộng lo phần làm việc với database

Hiện AppEngine hỗ trợ hai loại ngôn ngữ là: Python và Java Một số ngôn ngữkhác như PHP cũng có thể chạy được nếu cài cùng với bộ chuyển từ PHP sang Java

Trang 27

I.1.6.2 Các thành phần chính của AppEngine

Python Runtime

AppEngine hỗ trợ Python Runtime phiên bản 2.5.2 Hầu hết các thư viện củaPython Standard Library đều được hỗ trợ Tuy nhiên do vấn đề về security nên cácextensions viết bằng C sẽ không được hỗ trợ Điều này có nghĩa rằng không thể nhúng

C extensions vào ứng dụng khi sử dụng App Engine

Python Runtime cung cấp APIs cho datastore, Google Accounts, App Engineservices Để tiện lợi cho việc phát triển web AppEngine cũng cung cấp một webframework đơn giản là webapp Do viết bằng ngôn ngữ Python nên AppEngine hỗ trợhầu hết các Python framework như Django, CherryPy, Pylons, web.py với một ít thayđổi nhất định

Java Runtime Environment

Có thể phát triển ứng dụng cho Java Runtime Environment sử dụng phổ biếncông cụ phát triển web Java và các tiêu chuẩn API Ứng dụng tương tác với môitrường bằng cách sử dụng the Java Servlet standard, và có thể sử dụng các công nghệứng dụng web phổ biến như JavaServer Pages (JSP)

Java Runtime Environment sử dụng Java 6 Các App Engine Java SDK hỗ trợphát triển các ứng dụng bằng cách sử dụng Java 5 hoặc 6

Đối với các kho dữ liệu App Engine, Java SDK bao gồm việc triển khai củaJava Data Objects (JDO) và Java Persistence API (JPA) interfaces Ứng dụng có thể

sử dụng các API JavaMail để gửi tin nhắn email với dịch vụ App Engine Mail Cácjava.net HTTP API truy cập vào App Engine lấy URL dịch vụ App Engine cũng baogồm các API cấp thấp cho các dịch vụ của mình để thực hiện thêm bộ điều hợp, hoặc

sử dụng trực tiếp từ ứng dụng

I.1.6.3 App Engine datastore

App Engine cung cấp một dịch vụ lưu trữ phân tán những kho dữ liệu phân tánnày sẽ phát triển dần theo dữ liệu App Engine sẽ cung cấp cho chúng ta những API

để thực hiện thao tác với cở sở dữ liệu bên dưới

Google App Engine cung cấp hai dạng datastore:

Master/Slave Datastore:

Bao gồm một trung tâm dữ liệu (data center) đóng vai trò là master chịu tráchnhiệm đọc và truy vấn, các trung tâm dữ liệu khác đóng vai trò slave Với mô hình nàythì dữ liệu được sao lưu không đồng bộ, tuy nhiên lợi thế của mô hình này không gianlưu trữ nhỏ, chi phí CPU thấp

Trang 28

High Replication Datastore:

Dữ liệu sẽ được sao lưu trên tất cả các trung tâm dữ liệu khác dựa trên thuậttoán Paxos Đây là một giải pháp mới, tính sẵn sàng cao và đáng tin cậy Tuy nhiên chiphí cao, do đó nó được sử dụng cho các ứng dụng cực kì quan trọng

App Engine datastore lưu các đối tượng dữ liệu gọi là các thực thể (entity).Một thực thể có một hay nhiều thuộc tính (property), mỗi thuộc tính tương ứng mộtkiểu dữ liệu (chuỗi, số nguyên, tham chiếu đến một đối tượng khác)

Một thao tác với cơ sở dữ liệu gọi là thành công khi mọi hành động trong thaotác đó thành công Nếu bất kì một hành động nào không thành công, thì thao tác đó sẽ

bị ngừng lại Điều này thích hợp với các ứng dụng web phân tán, nơi người dùng cóthể truy cập hay thao tác cùng một dữ liệu tại một thời điểm

Datastore với kiến trúc phân tán có nhiều tính năng tương tự cơ sở dữ liệutruyền thống, có khả năng quản lý lượng dữ liệu rất lớn Nó khác với cơ sở dữ liệuquan hệ truyền thống trong cách mô tả quan hệ giữa các đối tượng dữ liệu Hai thựcthể cùng loại có thể có các thuộc tính khác nhau, các thực thể khác nhau có thể có cácthuộc tính cùng tên, nhưng khác nhau về kiểu dữ liệu

Không giống như cơ sở dữ liệu quan hệ truyền thống, App Engine datastorekhông bắt buộc các thực thể cùng loại phải có cùng các thuộc tính Một thuộc tính cóthể có một hoặc nhiều giá trị ứng với nhiều kiểu dữ liệu khác nhau

Trang 29

Mỗi câu truy vấn sử dụng chỉ mục, bảng để chứa kết quả và sắp xếp chúng theothứ tự mong muốn

I.1.6.6 Phiên làm việc và nhóm thực thể

Đối với App Engine thì các thao tác như thêm, xóa, sửa, cập nhật xảy ra trongmột phiên làm việc Phiên làm việc đảm bảo rằng mọi thay đổi liên quan đến thực thể

sẽ lưu vào datastore, trong trường hợp thất bại, không thay đổi nào được lưu lại Điềunày đảm bảo tính nhất quán của dữ liệu trong thực thể

Chúng ta có thể thực hiện nhiều tương tác với thực thể trong một phiên làmviệc bằng cách sử dụng các API được hỗ trợ sẵn

App Engine datastore cho phép thay đổi nhiều thực thể trong một giao dịch bằng cách

sử dụng một nhóm thực thể Muốn được như thế phải khai báo thực thể thuộc về nhóm thực thể nào khi tạo ra nó Tất cả thực thể được thêm, xóa, sửa, cập nhật trongmột phiên làm việc phải cùng thuộc một nhóm thực thể Nhóm thực thể được địnhnghĩa bởi mối quan hệ phân cấp giữa các thực thể Để tạo một thực thể trong mộtnhóm, phải khai báo thực thể đó là con của một thực thể đã tồn tại trong nhóm đó Thực thể tạo ra mà không có cha thì gọi là thực thể gốc Mỗi thực thể có một conđường các mối quan hệ cha-con từ thực thể gốc đến nó Con đường này là thành phầncấu thành nên khóa hoàn chỉnh của thực thể Một khóa hoàn chỉnh gồm loại và ID địnhdanh, hoặc là tên khóa của mỗi thực thể trong con đường các mối quan hệ

I.1.6.7 Google Account

App Engine hỗ trợ tích hợp một ứng dụng với các tài khoản của Google để xác thựcngười dùng Ứng dụng của chúng ta có thể cho phép người dùng lấy tài khoản googlecủa họ để đăng nhập Dùng tài khoản Google cho phép người dùng truy cập ứng dụngcủa chúng ta nhanh hơn, thay vì phải đăng ký một tài khoản mới Và nó cũng giúpchúng ta tiết kiệm khoảng thời gian xây dựng hệ thống tài khoản người dùng

I.1.6.8 App Engine Services

App Engine cung cấp nhiều dịch vụ cho phép dễ dàng quản lý ứng dụng

URL Fletch: cho phép ứng dụng truy cập tài nguyên trên internet

Mail: cho phép ứng dụng thưc hiện gửi thư điện thử thông qua các dịch mail củaGoogle

Memcache: là dịch vụ cho phép ứng dụng hoạt động có hiệu suất cao với vùng nhớđệm trong nhiều trường hợp

Image Manipulation: dịch vụ cho phép ứng dụng thao tác trên hình ảnh: thay đổi size,cắt, xoay, lật ảnh JPEG và PNG

Trang 30

I.1.6.9 Hạn chế

Tuy nhiên, mặt trái của việc xây dựng ứng dụng trên GAE là sẽ phụ thuộc hoàntoàn vào các công nghệ của Google và rất khó có thể tách ra thành một ứng dụng độclập Yahoo hay Microsoft sẽ chẳng bao giờ mua một ứng dụng xây dựng trên nền tảngcủa đối thủ Còn các nhà đầu tư cũng rất e ngại khi tài sản của công ty đặt hết vào tayngười khác, dù cho đó là Google

I.2 Hệ điều hành Android

I.2.1 Khái niệm Android

Android là nền tảng cho thiết bị di động bao gồm một hệ điều hành, midware và một

số ứng dụng chủ đạo Bộ công cụ Android SDK cung cấp các công cụ và bộ thư viêncác hàm API cần thiết để phát triển ứng dụng cho nền tảng Android sử dụng ngôn ngữlập trình java

Những tính năng mà nền tảng Android hổ trợ:

Application framework: Cho phép tái sử dụng và thay thế các thành phần sẳn

có của Android

Dalvik virtual macine: Máy ảo java được tối ưu hóa cho thiết bị di động.

Intergrated browser: Trình duyệt web tích hợp được xây dựng dựa trên

WebKit engine

Optimized graphics: Hổ trợ bộ thư viện 2D và 3D dự vào đặc tả OpenGL ES 1.0.

SQLite: DBMS dùng để lưu trữ dữ liệu có cấu trúc.

Hổ trở các định dạng media phổ biến như: MPEG4, H.264, MP3, AAC, ARM, JPG,PNG, GIF

Hổ trợ thoại trên nền tảng GSM (Phụ thuộc vài phần cứng thiết bị)

Bluetooth, EDGE, 3G và WiFi (Phụ thuộc vài phần cứng thiết bị)

Camera, GPS, la bàn và cảm biến (Phụ thuộc vài phần cứng thiết bị)

Bộ công cụ phát triển ứng dụng mạnh mẽ

Trang 31

I.2.2 Kiến trúc Android

Lược đồ sau thể hiện các thành phần của hệ điều hành Android:

Hình 6 :Mô hình kiến trúc nền tảng Android

I.2.2.1 Applications

Hệ điều hành Android tích hợp sẳn một số ứng dụng cơ bản như email client, SMS,lịch điện tử, bản đồ, trình duyệt web, sổ liên lạc và một số ứng dụng khác Ngoài ra tầng nàycũng chính là tầng chứa các ứng dụng được phát triển bằng ngôn ngữ Java

I.2.2.2 Application Framwork

Tầng này của hệ điều hành Android cung cấp một nền tảng phát triển ứng dụng

mở qua đó cho phép nhà phát triển ứng dụng có khả năng tạo ra các ứng dụng vô cùngsáng tạo và phong phú Các nhà phát triển ứng dụng được tự do sử dụng các tính năngcao cấp của thiết bị phần cứng như: thông tin định vị địa lý, khả năng chạy dịch vụdưới nền, thiết lập

Tầng này bao gồm một tập các services và thành phần sau:

Content Provider: Cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng

dụng khác hoặc chia sẽ dữ liệu của chúng

Resource Manager: Cung cấp khả năng truy xuất các tài nguyên non-code như

hình ảnh hoặc file layout

Trang 32

Notification Manager: Cung cấp khả năng hiển thị custom alert trên thanh status

System C library: một thể hiện được xây dựng từ BSD của bộ thư viện hệ

thống C chuẩn (libc), được điều chỉnh để tối ưu hóa cho các thiết bị chạy trên nềnLinux

Media libraries: Bộ thư viện hổ trợ trình diễn và ghi các định dạng âm than và

hình ảnh phổ biến

Surface manager: Quản lý hiển thị nội dung 2D và 3D.

LibWebCore: Một web browser engine hiện đại được sử dụng trong trình

duyệt của Android lần trong trình duyệt nhúng web view được sử dụng trong ứngdụng

SGL: Engine hổ trợ đồ họa 2D.

3D libraries: Một thể hiện được xây dựng dựa trên các APIs của OpenGL ES

1.0 Những thư viện này sử dụng các tăng tốc 3D bằng phần cứng lẫn phần mềm để tối

ưu hóa hiển thị 3D

FreeType: Bitmap and vector font rendering.

SQLite: Một DBMS nhỏ gọn và mạnh mẽ.

I.2.2.4 Android Runtime

Hệ điều hành Android tích hợp sẳn một tập hợp các thư viện cốt lõi cung cấphầu hết các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java Mọiứng dụng của Android chạy trên một tiến trình của riêng nó cùng với một thể hiện củamáy ảo Dalvik Máy ảo Dalvik thực tế là một biến thể của máy ảo Java được sửa đổi,

bổ sung các công nghệ đặc trưng của thiết bị di động Nó được xây dựng với mục đíchlàm cho các thiết bị di động có thể chạy nhiều máy ảo một cách hiệu quả Trước khi

Trang 33

stack, driver model Bộ nhân này làm nhiệm vụ như một lớp trung gian kết nối phầncứng thiết bị và phần ứng dụng.

Dưới đây là mô hình hợp tác giữa máy ảo Dalvik và Navite code:

Hình 7 :Mô hình hợp tác giữa máy ảo Dalvik và Navite code

I.2.3 Các thành phần cơ bản của một ứng dụng Android

I.2.3.1 Activity

Định nghĩa Activity

Là thành phần quan trọng của bất kỳ một ứng dụng Android nào.Thuật ngữActivity chỉ một việc mà người dùng có thể thực hiện trong một ứng dụng Android

Do gần như mọi activity đều tương tác với người dùng, lớp Activity đảm nhận việc tạo

ra một cửa sổ để người lập trình đặt lên đó một giao diện UI với setContentView(View)

Có hai phương thức mà gần như mọi lớp con của Activity đều phải hiện thực:

onCreate(Bundle) - Nơi khởi tạo activity

onPause() - Nơi giải quyết sự kiện người dùng rời khỏi activity Mọi dữ liệu

được người dùng tạo ra tới thời điểm này cần phải được lưu vào ContentProvider

Trang 34

Vòng đời của một activity

Hình 8 :Lược đồ vòng đời của 1 activity

I.2.3.2 Intent

Định nghĩa Intent

Intent được sử dụng với phương thức startActivity() để mở một Activity, vàdùng với broadcastIntent để gởi nó đến bất kì BroadcastReceiver liên quan nào, vàdùng với startService(Intent),bindService(Intent, ServiceConnection, int) để giao tiếpvới các Service chạy dưới nền

Trang 35

I.2.3.3 Service

Định nghĩa Service

Một service là một thành phần của ứng dụng, thể hiện mong muốn ứng dụngthực hiện các hành động trong khi không tương tác với người dùng hoặc cung cấpchức năng cho các ứng dụng khác sử dụng Nói một cách đơn giản, service là các tác

vụ (task) chạy ngầm dưới hệ thống nhằm thực hiện một nhiệm vụ nào đó Mỗi classService phải chứa thẻ <service> được khai báo trong file AndroidManifext.xml.Services có thể được bắt đầu bởi Context.startService() và Context.bindservice()

Vòng đời của một Service

Dù cho một service có được start bao nhiêu lần đi nữa thì nó sẽ bị tắt ngay khiphương thức Context.stopService() hoặc phương thức stopSelf() được gọi.Service cóthể dùng phương thức stopSelf(int) để đảm bảo rằng service sẽ không được tắt cho đếnkhi Intent đã khởi tạo nó được xử lý

Hình 10 :Lược đồ vòng đời của 1 Service Dựa theo hình trên, một service được bắt đầu bởi phương thức startService() làservice dùng để thực hiện các tác vụ ngầm dưới nền, service được bắt đầu bởi phươngthức bindService() là service được dùng để cung cấp các chức năng cho các chươngtrình khác

I.2.3.4 Content Provider

Là nơi lưu trữ và cung cấp cách truy cập dữ liệu do các ứng dụng tạo nên Đây làcách duy nhất mà các ứng dụng có thể chia sẻ dữ liệu của nhau

Trang 36

Android cung cấp sẵn content providers cho một số kiểu dữ liệu thông dụng như âmthanh, video, thông tin sổ điện thoại, ) Người lập trình cũng có thể tự tạo ra các classcon (subclass) của Content Provider để lưu trữ kiểu dữ liệu của riêng mình.

I.2.3.5 View

View là thành phần cơ bản để xây dựng giao diện người dùng cho một ứng dụngAndroid View là một lớp căn bản của widgets

Một số Views thường dùng:

TextView: Hiển thị một khung text và cho phép người dùng thay đổi

ImageView: Hiển thị một hình ảnh xác định từ file tài nguyên hay qua một

content provider

Button: Hiển thị một nút nhấn.

Checkbox: Hiển thị một nút nhấn với hai trạng thái khác nhau.

KeyboardView: Hiển thị bàn phím ảo để nhập liệu.

WebView: Hiển thị các trang web bằng Webkit.

I.2.3.6 Broadcast Receiver

Một Broadcast receiver là một thành phần mà không làm gì khác ngoài việc nhận các thông báo được broadcast Một ứng dụng có thể có nhiều broadcastreceiver để đáp lại những thông báo được phát đến Tất cả các broadcastreceiver được thừa kế từ lớp cơ sở BroadcastReceiver Một Broadcast receiverkhông có giao diện nhưng nó có thể thực hiện gọi một

I.2.3.7 File AndroidManifest.xml

Là nền tảng của mọi ứng dụng Android, file AndroidManifest.xml được đặttrong thư mục root và cho biết những thành phần có trong ứng dụng của: các activities,các services, cũng như cách các thành phần ấy gắn bó với nhau

Khi tạo file manifest, điều quan trọng nhất là phải cung cấp thuộc tính củapackage, tức tên của Java package dùng làm cơ sở cho ứng dụng của ta

I.3 Giới thiệu về Google Maps

Hiện tại, có nhiều nhà cung cấp dịch vụ bản đồ trực tuyến miễn phí như

là Google, Yahoo, Microsoft, và Amazon… Google là hãng cung cấp dịch vụ tốt nhấtvới sản phẩm Google Maps với nhiều chức năng bản đồ cũng nhƣ cung cấp các APIs

Trang 37

có thể chia làm 2 danh mục riêng biệt: dữ liệu cơ sở và dữ liệu của ứng dụng Dữ liệu

cơ sở, hay dữ liệu nền thường bao gồm dữ liệu địa lý và thường có nhiều lớp nhƣ làlớp khí quyển, ảnh, đường và các đường biên lãnh thổ Dữ liệu cụ thể của ứng dụngbao gồm các tầng dữ liệu cụ thể cho ứng dụng được phát triển Ví dụ, một ứng dụngbản đồ Web cho một thành phố thì sẽ có các lớp nhỏ là các vùng trực thuộc, vị trí cáctrường học, các công trình công cộng, và nhiều lớp khác Mỗi lớp dữ liệu này phảiđược định vị và lưu trữ trên máy chủ bởi chính tổ chức đó và nó cần được cập nhậtđịnh kỳ Với Google Maps, sẽ không còn phải định vị và quản lý dữ liệu cơ sởnữa Dữ liệu vùng, đường đã đi kèm trong Google Maps Tuy nhiên, người sửdụng cũng cần phải quản lý ứng dụng của mình bằng dữ liệu XML hoặc là các địnhdạng khác Không chỉ có các yêu cầu dữ liệu phức tạp, các ứng dụng bản đồ cổ điểncòn cócác vấn đề với phần cứng phần mềm và sức lực con người Phải mua thêm phầncứng và phần mềm, cũng nhờ cần có sự quản lý của con người để cài đặt bảo trì, quảntrị phần mềm, lập trình tạo ra ứng dụng Tuy không hoàn toàn loại bỏ các yêu cầuphần cứng và phần mềm, chúng đã được giảm thiểu đáng kể với Google Maps Vẫncần phần cứng để triển khai ứng dụng nhƣng yêu cầu phần mềm thì đã được hạn chếmột cách tối đa Google Maps là sản phẩm miễn phí, không cần cài đặt, hay quản lý.Sản phẩm hỗ trợ các APIs để tạo ra các chức năng tùy biến của ứng dụng.GoogleMaps hỗ trợ các dịch vụ nhờ định vị, tìm đường, thêm dữ liệu cá nhân, các điều khiểnlàm cho việc ứng dụng bản đồ trong ứng dụng Web trở nên dễ dàng và thuận tiện hơnbao giờ

I.4 Định vị toàn cầu GPS

Hệ thống định vị toàn cầu (tiếng Anh: Global Positioning System – GPS) là hệthống xác định vị trí dựa trên vị trí của các vệ tinh nhân tạo Trong cùng một thờiđiểm, ở một vị trí trên mặt đất nếu xác định được khoảng cách đến ba vệ tinh (tốithiểu) thì sẽ tính được tọa độ của vị trí đó Hệ thống định vị toàn cầu của Mỹ là hệ dẫnđường dựa trên một mạng lưới 24 quả vệ tinh được Bộ Quốc phòng Hoa Kỳ đặt trênquỹ đạo không gian

Các hệ thống dẫn đường truyền thống hoạt động dựa trên các trạm phát tín hiệu

vô tuyến điện Được biết đến nhiều nhất là các hệ thống sau: LORAN – (Long RangeNavigation) – hoạt động ở giải tần 90-100 kHz chủ yếu dùng cho hàng hải, hayTACAN – (TACtical Air Navigation) – dùng cho quân đội Mỹ và biến thể với độchính xác thấp VOR/DME – VHF (Omnidirectional Range/Distance MeasuringEquipment) – dùng cho hàng không dân dụng

Trang 38

Gần như đồng thời với lúc Mỹ phát triển GPS, Liên Xô cũng phát triển một hệthống tương tự với tên gọi GLONASS Hiện nay Liên minh Châu Âu đang phát triển

hệ dẫn đường vệ tinh của mình mang tên Galileo

GPS ban đầu chỉ dành cho các mục đích quân sự, nhưng từ năm 1980 chính phủ

Mỹ cho phép sử dụng trong dân sự GPS hoạt động trong mọi điều kiện thời tiết, mọinơi trên Trái Đất, 24 giờ một ngày Không mất phí thuê bao hoặc mất tiền trả cho việcthiết lập sử dụng GPS

Hệ thống định vị tòan cầu ( GPS ) do Bộ Quốc phòng Mỹ phát triển và điều hành.gồm 3 phần :

Phần vũ trụ

Gồm 24 vệ tinh quay xung quanh trái đất hai lần trong ngày trong quỹ đạo rất

chính xác.Độ cao vệ tinh so với mặt đất là 20.183 km, chu kỳ quay quanh trái đất là 11giờ 57’58”

 Phần vũ trụ sẽ bảo đảm cho bất kỳ vị trí nào trên quả đất đều có thể quan sátđược 4 vệ tinh ở góc trên 15 độ ( nếu góc ở ngưỡng 10 độ thì có thể quan sát được 10

vệ tinh và ở góc ngưỡng 5 độ có thể quan sát được 12 vệ tinh

Phần điều khiển

Bao gồm một trạm điều khiển chính, 5 trạm thu số liệu, 3 trạm truyền số liệu

Phần sử dụng

 Những máy thu tín hiệu GPS có anten riêng ( máy định vị )

 Các thiết bị tự ghi ( bộ ghi số liệu )

 Máy tính ( phần mềm xử lý số liệu )

Ngày đăng: 19/03/2019, 21:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w