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

NGHIÊN CỨU VÀ TRIỂN KHAI ỨNG DỤNG WEB TRÊN NỀN TẢNG APP ENGINE CỦA GOOGLE

283 191 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 283
Dung lượng 4,12 MB

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

Nội dung

Google là một trong những nhà cung cấp dịch vụ điện toán đám mây hiện nay với nền tảng App Engine cho phép người dùng xây dựng và triển khai ứng dụng web Java... Tuy nhiên hầu hết các do

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM TPHCM

KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP

NGHIÊN CỨU VÀ TRIỂN KHAI ỨNG DỤNG WEB TRÊN NỀN TẢNG

APP ENGINE CỦA GOOGLE

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM TPHCM

KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP

NGHIÊN CỨU VÀ TRIỂN KHAI ỨNG DỤNG WEB TRÊN NỀN TẢNG

APP ENGINE CỦA GOOGLE

Giáo viên hướng dẫn: Sinh viên thực hiện:

TP.HỒ CHÍ MINH, tháng 8 năm 2011

Trang 4

CÔNG TRÌNH HOÀN TẤT TẠI TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM

Cán bộ hướng dẫn: Thạc sĩ Mai Anh Thơ

Cán bộ phản biện: Tiến sĩ Phạm Văn Tính

Luận văn cử nhân được bảo vệ tại HỘI ĐỒNG CHẤM LUẬN VĂN CỬ NHÂN TRƯỜNG ĐẠI HỌC NÔNG LÂM TP HCM ngày 31 tháng 8 năm 2011

Trang 5

NHIỆM VỤ LUẬN VĂN CỬ NHÂN

I TÊN ĐỀ TÀI: Nghiên cứu và triển khai ứng dụng web trên nền tảng App engine

của Google

II NHIỆM VỤ VÀ NỘI DUNG

Nghiên cứu và trên khai ứng dụng bán sơn trực tuyến trên nền tảng App engine của Google

III NGÀY GIAO NHIỆM VỤ: 10/03/2011

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 31/08/2011

V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Thạc sĩ Mai Anh Thơ

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc Lập-Tự Do-Hạnh Phúc

Bộ Giáo Dục và Đào Tạo

Trường ĐH NÔNG LÂM TpHCM

Họ tên sinh viên: NGUYỄN HỒ YẾN NHI

Ngày tháng năm sinh: 22/10/1989

Chuyên ngành: Hệ thống thông tin

Họ tên sinh viên: TRỊNH VĂN QUI

Ngày tháng năm sinh: 04/01/1987

Chuyên ngành: Hệ thống thông tin

Họ và tên sinh viên: VÕ HÀ TIẾN

Ngày tháng năm sinh: 05/04/1986

Chuyên ngành: Mạng máy tính và truyền

Phái: nam

Nơi sinh: Khánh Hòa Ngành: Công nghệ thông tin

Ngày / / KHOA CNTT

Ngày / / CHỦ NHIỆM CHUYÊN NGÀNH Ngày / /

CÁN BỘ HƯỚNG DẪN

Trang 6

LỜI CẢM ƠN



Trong suốt quá trình học tập và hoàn thành luận văn, chúng em

đã nhận được sự hướng dẫn, giúp đỡ quý báu của Cha Mẹ, Thầy Cô

và các bạn

Trước hết, chúng con xin nói lên lòngbiết ơn sâu sắc đối với Cha

Mẹ đã chăm sóc, nuôi dạy chúng con nên người

Với lòng kính trọng và biết ơn sâu sắc, chúng em xin được bày tỏ lời cảm ơn chân thành tới Ban Giám Hiệu cùng toàn thể Thầy Cô Khoa Công nghệ thông tin trường Đại Học Nông Lâm đã truyền đạt cho chúng em những kiến thức quý báu, đồng thời tạo điều kiện thuận lợi giúp chúng em hòan thành tốt luận văn tốt nghiệp

Đặc biệt, chúng em xin gửi lời tri ân chân thành nhất đến Cô Mai Anh Thơ, người đã luôn quan tâm giúp đỡ, chỉ bảo và động viên chúng em trong suốt quá trình thực hiện luận văn

Bên cạnh đó, chúng em xin gửi lời cám ơn đến Công ty TNHH MTV Sơn Thắng Lợi đã hợp tác, cung cấp tư liệu, giúp chúng em hoàn thành ứng dụng, góp phần làm cho luận văn thêm giá trị

Chúng em đồng gửi lời cám ơn đến các anh chị, bạn bè sinh viên cùng khoa đã luôn bên cạnh động viên tinh thần, chia sẻ kinh nghiệm quý báu góp phần cho thành công của luận văn

Mặc dù chúng em đã cố gắng hoàn thành đồ án trong phạm vi và khả năng cho phép, nhưng chắc chắn không tránh khỏi những thiếu sót nhất định Chúng em kính mong nhận được sự chỉ bảo của quý Thầy Cô và sự góp ý chân thành của các bạn

Chúng em kính chúc Cha Mẹ luôn dồi dào sức khỏe, kính chúc quý Thầy Cô luôn khỏe mạnh, và thành công trong công tác trồng người, mến chúc các bạn luôn vững vàng trên con đường học vấn và

sự nghiệp

Xin chân thành cám ơn!

Trang 7

MỤC LỤC

MỤC LỤC I DANH SÁCH CHỮ VIẾT TẮT IV DANH MỤC CÁC HÌNH VI DANH MỤC CÁC BẢNG XII

TÓM TẮT 1

CHƯƠNG 1: MỞ ĐẦU 2

1.1 GIỚI THIỆU 2

1.2 ĐẶT VẤN ĐỀ 3

1.3 LÝ DO CHỌN ĐỀ TÀI 3

1.3.1 LÝ DO CHỦ QUAN 3

1.3.2 LÝ DO KHÁCH QUAN 3

1.4 MỤC ĐÍCH ĐỀ TÀI 4

1.5 ĐỐI TƯỢNG NGHIÊN CỨU 4

1.6 NỘI DUNG NGHIÊN CỨU 5

1.7 CÁC VẤN ĐỀ VÀ HƯỚNG NGHIÊN CỨU 5

1.8 CẤU TRÚC LUẬN VĂN 6

CHƯƠNG 2: TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 7

2.1 KHÁI NIỆM ĐIỆN TOÁN ĐÁM MÂY 7

2.2 NHỮNG ĐẶC ĐIỂM NỔI BẬT 8

2.3 MÔ HÌNH HƯỚNG DỊCH VỤ 9

2.4 CÁCH THỨC HOẠT ĐỘNG CỦA ĐIỆN TOÁN ĐÁM MÂY 11

2.5 CÁC MÔ HÌNH TRIỂN KHAI ĐIỆN TOÁN ĐÁM MÂY 12

2.5.1 CÁC ĐÁM MÂY CÔNG CỘNG (PUBLIC CLOUD) 13

2.5.2 CÁC ĐÁM MÂY RIÊNG (PRIVATE CLOUD) 14

2.5.3 CÁC ĐÁM MÂY LAI (HYBRID CLOUD) 15

2.5.4 CÁC ĐÁM MÂY CHUNG (COMMUNITY CLOUD) 16

2.6 ƯU VÀ NHƯỢC ĐIỂM CỦA ĐIỆN TOÁN ĐÁM MÂY 16

2.6.1 ƯU ĐIỂM 16

2.6.2 NHƯỢC ĐIỂM 17

CHƯƠNG 3: GOOGLE APP ENGINE 19

3.1 KHÁI NIỆM VÀ SỰ RA ĐỜI 19

3.2 KIẾN TRÚC HOẠT ĐỘNG 20

3.3 CÁC THÀNH PHẦN CHÍNH CỦA GAE VÀ CHỨC NĂNG CỦA MỖI PHẦN 21

Trang 8

3.3.1 MÔI TRƯỜNG THỰC THI (THE RUNTIME ENVIRONMENT) 21

3.3.2 CÁC FILE SERVER TĨNH (STATIC FILE SERVERS) 24

3.3.3 KHO DỮ LIỆU (DATASTORE) 24

3.3.3.1 THỰC THỂ (ENTITIES) VÀ THUỘC TÍNH (PROPERTIES) 25

3.3.3.2 TRUY VẤN (QUERIES) VÀ CHỈ MỤC (INDEXES) 25

3.3.3.3 PHIÊN GIAO DỊCH (TRANSACTION) 25

3.3.3.4 CÁC DỊCH VỤ (THE SERVICES) 26

3.3.3.5 TÀI KHOẢN GOOGLE (GOOGLE ACCOUNTS) 27

3.3.3.6 HÀNG ĐỢI CÔNG VIỆC VÀ LẬP LỊCH (TASK QUEUES VÀ CRON JOBS) 27

3.3.3.7 CÁC TOOL LẬP TRÌNH 28

3.4 MÀN HÌNH QUẢN TRỊ (THE ADMINISTRATION CONSOLE) 29

3.5 HẠN CHẾ CỦA APP ENGINE 29

CHƯƠNG 4: CÁC DỊCH VỤ CỦA GAE 31

4.1 DATASTORE 31

4.1.1 TỔNG QUAN 31

4.1.2 API 34

4.1.2.1 PYTHON 34

4.1.2.2 JAVA 37

4.2 BLOBSTORE 48

4.2.1 TỔNG QUAN 48

4.2.2 API 49

4.2.2.1 PYTHON 49

4.2.2.2 JAVA 51

4.3 CAPABILITIES 54

4.3.1 TỔNG QUAN 54

4.3.2 API 55

4.3.2.1 PYTHON 55

4.3.2.2 JAVA 56

4.4 MAIL 57

4.4.1 TỔNG QUAN: 57

4.4.2 API: 57

4.4.2.1 PYTHON: 57

4.4.2.2 JAVA: 60

4.4.3 LOCAL TEST 63

4.5 MEMCACHE 64

4.5.1 TỔNG QUAN 64

4.5.2 API: 65

4.5.2.1 PYTHON 66

4.5.2.2 JAVA 67

4.5.2.2.1 API CỦA APP ENGINE 67

4.5.2.2.2 API JCACHE 68

4.6 URL FETCH 71

Trang 9

4.6.2.1 PYTHON 73

4.6.2.2 JAVA 74

4.7 USERS 75

4.7.1 TỔNG QUAN 75

4.7.2 API 76

4.7.2.1 PYTHON 76

4.7.2.2 JAVA 77

CHƯƠNG 5 – BÀI TOÁN ỨNG DỤNG: PHÁT TRIỂN HỆ THỐNG BÁN SƠN TRỰC TUYẾN 79

5.1 PHÁT BIỂU BÀI TOÁN 79

5.2 PHÂN TÍCH – THIẾT KẾ HỆ THỐNG 79

5.2.1 TỔNG QUAN HỆ THỐNG 79

5.2.2 LƯỢC ĐỒ USECASE 80

5.2.2.1 MODULE HIỂN THỊ THÔNG TIN 82

5.2.2.2 MODULE HIỂN THỊ SẢN PHẨM 83

5.2.2.3 MODULE ĐẶT HÀNG 84

5.2.2.4 MODULE QUẢN LÝ THÔNG TIN 85

5.2.2.5 MODULE QUẢN LÝ SẢN PHẨM 86

5.2.3 SƠ ĐỒ LỚP 88

CHƯƠNG 6 – KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 91

6.1 KẾT QUẢ ĐẠT ĐƯỢC 91

6.1.1 KIẾN THỨC 91

6.1.2 ỨNG DỤNG – WEBSITE SƠN THẮNG LỢI 92

6.2 HƯỚNG PHÁT TRIỂN 93

TÀI LIỆU THAM KHẢO 94

PHỤ LỤC A – ĐĂNG KÝ GAE 95

PHỤ LỤC B – HƯỚNG DẪN CÀI ĐẶT MÔI TRƯỜNG LẬP TRÌNH GAE CHO JAVA 103

PHỤ LỤC C – CÀI ĐẶT MÔI TRƯỜNG LẬP TRÌNH GAE CHO PYTHON 114

PHỤ LỤC D – TỔNG QUAN VỀ PYTHON 135

PHỤ LỤC E – ĐẶC TẢ CÁC USECASE CHÍNH CỦA HỆ THỐNG WEBSITE SƠN THẮNG LỢI 149

Trang 10

DANH SÁCH CHỮ VIẾT TẮT

AD Application Dictionary

API Application Programming Interfaces AWS Amazone Web Service

CGI Common Gateway Interface

CNTT Công Nghệ Thông Tin

CNRI Corporation for National Research Initiatives CPU Central Processing Unit

CRM Customer Relationship Management CSDL Cơ sở dữ liệu

Css Cascading Style Sheets

FSF Free Software Foundation

FTP File Transfer Protocol

GAE Google App Engine

GAEJ Google App Engine for Java

GAEP Google App Engine for Python

GB Gigabyte

GWT Google Web Tootkit

HTTP Hyper Text Transfer Protocol

HTTPS Hypertext Transfer Protocol Secure

IaaS Infrastructure as a Service

IT Information technology

JDK Java Development Kit

JDO Java Data Objects

JDOQL Java Data Objects Query Language

JPA Java Persistence API

Trang 11

JVM Java Virtual Machine

MB Megabyte

OS Operatin System

PaaS Platform as a Service

PEP Python Enhancement Proposal

SaaS Software as a Service

SDC Secure Data Connector

SDK Software Development Kit

TNHH Trách nhiệm hữu hạn

URL Uniform Resource Locator

XMPP Extensible Messaging and Presence Protocol

Trang 12

DANH MỤC CÁC HÌNH

Hình 2.1: Mô hình tổng quan của điện toán đám mây 8

Hình 2.2: Mô hình dịch vụ điện toán đám mây 9

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

Hình 2.4: Các dạng mô hình triển khai điện toán đám mây 12

Hình 2.5: Mô hình Public Cloud 13

Hình 2.6: Mô Hình Private Cloud 14

Hình 2.7: Mô hình Hybrid cloud 16

Hình 2.8: Mô hình Community cloud 16

Hinh 3.1: Kiến trúc hoạt động của GAE 20

Hình 4.1: Màn hình thiết lập tuỳ chọn các lưu trữ của datastore 32

Hình 4.2: Màn hình test gửi mail tại local 64

Hình 4.3: Màn hình thiết lập cách ứng dụng chứng thực người dùng lúc khởi tạo Application ID 76

Hình 4.4: Màn hình thiết lập cách ứng dụng chứng thực người dùng tại Admin Console 76

Hình 5.1: Các modules trong hệ thống 79

Hình 5.2: Lược đồ usecase tổng quát 81

Hình 5.3: Lược đồ usecase module Hiển thị thông tin 82

Hình 5.4: Lược đồ usecase module Hiển thị sản phẩm 83

Hình 5.5: Lược đồ usecase module Đặt hàng 84

Hình 5.6: Lược đồ usecase module Quản lý thông tin 85

Hình 5.7: Lược đồ usecase module Quản lý sản phẩm 87

Hình 5.8: Sơ đồ lớp – hệ thống website Sơn Thắng Lợi 89

Hình A1: Màn hình đăng nhập hệ thống GAE 95

Hình A2: Màn hình chào mừng lần đầu tiên tạo ứng dụng GAE 96

Hình A3: Màn hình nhập số điện thoại để xác thực 97

Trang 13

Hình A5: Màn hình tạo ứng dụng mới 98

Hình A6: Nhập Application Identifier và Application Title 99

Hình A7: Đồng ý các điều khoản của GAE 100

Hình A8: Màn hình tạo thành công ứng dụng 100

Hình A9: Màn hình quản lý ứng dụng của GAE 101

Hình A10: Màn hình liệt kê các ứng dụng trên GAE 102

Hình B1: Cửa sổ tạo project GAE mới 104

Hình B2: Khung thiết lập thông số cho Project GAE mới 105

Hình B3: cấu trúc project GAEJ 106

Hình B4: màn hình console khi chạy ứng dụng tại local 107

Hình B5: Màn hình chạy ứng dụng tại local (1) 108

Hình B6: Màn hình chạy ứng dụng tại local (2) 108

Hình B7: file cấu hình appengine-web.xml 109

Hình B8: Màn hình deploy ứng dụng lên Google 109

Hình B9: thiết lập Application ID cho ứng dụng 110

Hình B10: Màn hình deploy ứng dụng lên Google 111

Hình B11: Quá trình deploy ứng dụng lên Google 111

Hình B12: Màn hình console ghi log lại quá trình triển khai ứng dụng 112

Hình B13: Màn hình chạy ứng dụng trên hệ thống GAE (1) 113

Hình B14: Màn hình chạy ứng dụng trên hệ thống GAE (2) 113

Hình C1: Màn hình cấu hình Python cho eclipse 115

Hình C2: Cửa sổ khai báo file python.exe 115

Hình C3: Các thư viện được add thêm khi khai báo python.exe 116

Hình C4: Hoàn tất khai báo python.exe 117

Hình C5: Cửa sổ tạo project GAEP mới 118

Hình C6: Khung thiết lập cấu hình cho project GAEP mới 119

Hình C7: Cửa sổ khai báo đường dẫn GAE SDK 120

Hình C8: Cửa sổ cấu hình app-id và GAE project template 121

Trang 14

Hình C9: Cấu trúc project GAEP 122

Hình C10: Màn hình khởi động GAE Launcher 123

Hình C11: Cửa sổ khai báo đường dẫn đến project và port 123

Hình C12: Cửa sổ Launcher khi đã add project 124

Hình C13: Cửa sổ Launcher khi đã run project 124

Hình C14: Màn hình run project tại local 125

Hình C15: Cửa sổ cấu hình Pydev Google App Run trong eclipse 126

Hình C16: Khai báo src và port cho Pydev Google App Run trong eclipse 127

Hình C17: Khai báo src và port cho Pydev Google App Run trong eclipse 127

Hình C18: Màn hình run project tại local 128

Hình C19: Cửa sổ add project vào GAE Launcher để deploy 128

Hình C20: Cửa sổ cấu hình thông số deploy project 129

Hình C21: Cửa sổ đăng nhập tài khỏang GAE để deploy project 129

Hình C22: Cửa sổ console thông báo deploy thành công 130

Hình C23: Màn hình quản lý ứng dụng trên GAE website 130

Hình C24: Màn hình chạy project đã được deploy trên GAE 131

Hình C25: Cửa sổ cấu hình GAE Python deploy trong eclipse 132

Hình C26: Thiết lập cấu hình cho GAE Python deploy trong eclipse 133

Hình C27: Đăng nhập tài khỏan GAE để deploy project 133

Hình C28: Cửa sổ console thông báo deploy project thành công 134

Hình E1: Lược đồ activity Xem thông tin công ty 149

Hình E2: Lược đồ activity Xem thông tin khuyến mãi 150

Hình E3: Lược đồ activity Xem bản đồ 152

Hình E4: Lược đồ activity Xem dòng sơn mới 153

Hình E5: Lược đồ activity Xem dòng sơn giảm giá 154

Hình E6: Lược đồ activity Tìm kiếm sản phẩm 156

Hình E7: Lược đồ activity Xem thông tin sơn 158

Hình E8: Lược đồ activity Tải file thông số kỹ thuật dòng sơn 160

Trang 15

Hình E9: Lược đồ activity Xem thống kê bán hàng 161

Hình E10: Lược đồ activity Quản lý giỏ hàng 163

Hình E11: Lược đồ activity Thêm sơn vào giỏ hàng 164

Hình E12: Lược đồ activity Xem giỏ hàng 166

Hình E13: Lược đồ activity Cập nhật số lượng mặt hàng 168

Hình E14: Lược đồ activity Xoá mặt hàng 170

Hình E15: Lược đồ activity Đặt hàng 172

Hình E16: Lược đồ activity Liên hệ người bán 174

Hình E17: Lược đồ activity Chat với nhân viên hỗ trợ 176

Hình E18: Lược đồ activity Gửi câu hỏi 177

Hình E19: Lược đồ activity Xem câu hỏi 178

Hình E20: Lược đồ activity Gửi email liên hệ 179

Hình E21: Lược đồ activity Cập nhật thông tin chung 181

Hình E22: Lược đồ activity Quản lý danh sách sinh viên 184

Hình E23: Lược đồ activity Xem thông tin nhân viên 186

Hình E24: Lược đồ activity Thêm nhân viên 187

Hình E25: Lược đồ activity Cập nhật thông tin nhân viên 189

Hình E26: Lược đồ activity Xoá nhân viên 191

Hình E27: Lược đồ activity Quản lý tin khuyến mãi 192

Hình E28: Lược đồ activity Xem tin khuyến mãi 194

Hình E29: Lược đồ activity Thêm tin khuyến mãi 195

Hình E30: Lược đồ activity Cập nhật tin khuyến mãi 197

Hình E31: Lược đồ activity Xóa tin khuyến mãi 199

Hình E32: Lược đồ activity Quản lý hỏi và đáp 200

Hình E33: Lược đồ activity Xem danh sách câu hỏi 202

Hình E34: Lược đồ activity Xem câu hỏi 203

Hình E35: Lược đồ activity Trả lời câu hỏi 204

Hình E36: Lược đồ activity Xoá câu hỏi 206

Trang 16

Hình E37: Lược đồ activity Cập nhật bản đồ 207

Hình E38: Lược đồ activity Quản lý thương hiệu sơn 209

Hình E39: Lược đồ activity Xem thông tin thương hiệu sơn 211

Hình E40: Lược đồ activity Ẩn hiện thương hiệu sơn 212

Hình E41: Lược đồ activity Ẩn hiện thương hiệu sơn 213

Hình E42: Lược đồ activity Thêm thương hiệu sơn 214

Hình E43: Lược đồ activity Cập nhật thương hiệu sơn 216

Hình E44: Lược đồ activity Xoá thương hiệu sơn 218

Hình E45: Lược đồ activity Quản lý loại sơn 219

Hình E46: Lược đồ activity Xem thông tin loại sơn 221

Hình E47: Lược đồ activity Ẩn hiện loại sơn 222

Hình E48: Lược đồ activity Sắp xếp loại sơn 223

Hình E49: Lược đồ activity Thêm loại sơn 224

Hình E50: Lược đồ activity Cập nhật loại sơn 226

Hình E51: Lược đồ activity Xoá loại sơn 228

Hình E52: Lược đồ activity Quản lý dòng sơn 229

Hình E53: Lược đồ activity Xem thông tin dòng sơn 231

Hình E54: Lược đồ activity Ẩn hiện dòng sơn 232

Hình E55: Lược đồ activity Sắp xếp dòng sơn 233

Hình E56: Lược đồ activity Thêm dòng sơn 234

Hình E57: Lược đồ activity Cập nhật dòng sơn 236

Hình E58: Lược đồ activity Xoá dòng sơn 238

Hình E59: Lược đồ activity Quản lý nhóm sơn 240

Hình E60: Lược đồ activity Xem thông tin nhóm sơn 242

Hình E61: Lược đồ activity Ẩn hiện nhóm sơn 243

Hình E62: Lược đồ activity Sắp xếp nhóm sơn 244

Hình E63: Lược đồ activity Thêm nhóm sơn 245

Hình E64: Lược đồ activity Cập nhật nhóm sơn 247

Trang 17

Hình E65: Lược đồ activity Xoá nhóm sơn 249

Hình E66: Lược đồ activity Quản lý màu sơn 250

Hình E67: Lược đồ activity Xem thông tin màu sơn 252

Hình E68: Lược đồ activity Ẩn hiện màu sơn 253

Hình E69: Lược đồ activity Sắp xếp màu sơn 254

Hình E70: Lược đồ activity Thêm màu sơn 255

Hình E71: Lược đồ activity Sắp xếp màu sơn 257

Hình E72: Lược đồ activity Xoá màu sơn 259

Hình E73: Lược đồ activity Quản lý thống kê bán hàng 260

Hình E74: Lược đồ activity Cập nhật thông số bán hàng 262

Hình E75: Lược đồ activity Cập nhật thông số bán hàng 263

Hình E76: Lược đồ activity Chọn biểu đồ mặc định 264

Trang 18

DANH MỤC CÁC BẢNG

Bảng 2.1: Hằng số hỗ trợ Capability cho Java 55 Bảng 2.2: Hằng số hỗ trợ Capability cho Java 56 Bảng 6: So sánh chung giữa các dịch vụ điện toán đám mây 92 

Trang 19

TÓM TẮT

“Nghiên cứu và triển khai ứng dụng web trên nền tảng App Engine của Google” Mục tiêu đề tài là nghiên cứu Google App Engine (GAE) API để có thể viết ứng dụng và triển khai lên Google, đòi hỏi phải có kiến thức về kiến trúc hoạt động của GAE Cho đến thời điểm này, GAE chỉ mới hỗ trợ hai máy ảo Java và Python, nên chúng em nghiên cứu GAE theo hai ngôn ngữ đó Đối với Java, chúng em tập trung vào các dịch vụ mà GAE cung cấp Riêng về Python, là ngôn ngữ mới, chúng em tiến hành tìm hiểu APIs của Python, sau đó đi sâu vào nghiên cứu sự hỗ trợ của GAE với Python Với những kiến thức tìm hiểu được, chúng em viết hai ứng dụng web, cụ thể là hệ thống bán sơn trực tuyến cho công ty TNHH Một thành viên Sơn Thắng Lợi, sử dụng cùng một giao diện, xử lý cùng các chức năng, để có cái nhìn cụ thể hơn về điểm mạnh, yếu của hai ngôn ngữ, cũng như sự khác nhau trong hỗ trợ của App Engine

Trang 20

CHƯƠNG 1: MỞ ĐẦU

1.1 GIỚI THIỆU

Ngày nay công nghệ thông tin phát triển rất nhanh chóng, nắm giữ vai trò quan trọng trong việc thúc đấy sự tăng trưởng kinh tế, với sự ra đời của rất nhiều công nghệ mới, các dịch vụ CNTT đáp ứng nhu cầu của người dùng cũng như là các doanh nghiệp, Tuy nhiên, trong giai đoạn suy thoái kinh tế như hiện nay, thì việc ứng dụng một công nghệ hay một dịch vụ CNTT đáp ứng việc quản lý tốt, hiệu quả dữ liệu của riêng công ty cũng như dữ liệu khách hàng, đối tác là một trong những bài toán được ưu tiên hàng đầu và đang không ngừng gây khó khăn cho doanh nghiệp Để có thể quản lý được nguồn dữ liệu đó, ban đầu các doanh nghiệp phải đầu tư, tính toán rất nhiều loại chi phí như chi phí cho phần cứng, phần mềm, mạng, chi phí cho quản trị viên, chi phí bảo trì, sửa chữa,…Ngoài ra họ còn phải tính toán khả năng mở rộng, nâng cấp thiết bị; phải kiểm soát việc bảo mật dữ liệu cũng như tính sẵn sàng cao của dữ liệu Để giải quyết vấn đề trên thì chúng ta thấy được rằng nếu có một nơi tin cậy giúp các doanh nghiệp quản lý tốt nguồn dữ liệu đó, các doanh nghiệp sẽ không còn quan tâm đến cơ

sở hạ tầng, công nghệ mà chỉ tập trung chính vào công việc kinh doanh của họ thì sẽ mang lại cho họ hiệu quả và lợi nhuận ngày càng cao hơn Khái niệm “điện toán đám mây” đã ra đời trong hoàn cảnh đó và đang dần trở nên quen thuộc đối với các doanh nghiệp, đặc biệt là đối với các doanh nghiệp vừa và nhỏ

Điện toán đám mây (Cloud Computing), còn gọi là điện toán máy chủ ảo, là mô hình điện toán sử dụng các công nghệ máy tính và phát triển dựa vào mạng internet (Theo Wikipedia) Với một số lợi ích cơ bản như : sử dụng các tài nguyên tính toán động, giảm chi phí, giảm độ phức tạp trong cơ cấu doanh nghiệp, kiến trúc hướng dịch vụ… điện toán đám mây đang tạo cơ hội cho các doanh nghiệp hoạt động hiệu quả, thông minh và tiết kiệm chi phí hơn

Google là một trong những nhà cung cấp dịch vụ điện toán đám mây hiện nay với nền tảng App Engine cho phép người dùng xây dựng và triển khai ứng dụng web Java

Trang 21

1.2 ĐẶT VẤN ĐỀ

Hiện nay, việc ứng dụng công nghệ thông tin ở các doanh nghiệp Việt Nam đã trở nên phổ biến, và điện toán đám mây đã bắt đầu có những tín hiệu lạc quan Tuy nhiên hầu hết các doanh nghiệp đang sử dụng các dịch vụ điện toán đám mây hiện nay là các công ty công nghệ hàng đầu trong nước như: FPT, Công viên phần mềm Quang Trung,

… còn đại đa số các doanh nghiệp vừa và nhỏ vẫn còn e dè với điện toán đám mây, vẫn chưa hiểu rõ hết về mô hình này nên việc sử dụng các dịch vụ điện toán đám mây vẫn còn hạn chế Giải pháp cho vấn đề này là cung cấp cho người dùng một dịch vụ đám mây miễn phí như App Engine của Google để người dùng có thể trải nghiệm các tiện ích từ điện toán đám mây cũng như có thời gian nhiều hơn để tìm hiểu về những rủi ro

về tính an toàn dữ liệu, để từ đó họ có thể mạnh dạn hơn để sử dụng các dịch vụ của điện toán đám mây

1.3 LÝ DO CHỌN ĐỀ TÀI

1.3.1 LÝ DO CHỦ QUAN

GAE hỗ trợ hai ngôn ngữ lập trình Java và Python, là một thuận lợi để chúng em

có thể nghiên cứu sâu hơn về công nghệ này

Chúng em nhận thấy đây là một đề tài hay, bổ ích và vô cùng thực tế, có thể cung cấp cho chúng em nhiều kinh nghiệm và hiểu biết phục vụ cho công việc sau này

1.3.2 LÝ DO KHÁCH QUAN

Mặc dù không phải là công ty đi đầu trong lĩnh vực điện toán đám mây nhưng Google đã khẳng định được mình là một đối thủ nặng kí trong lĩnh vực này với App Engine Google sẽ đi theo hướng cung cấp các trải nghiệm điện toán đám mây đơn giản hơn so với các nhà cung cấp dịch vụ khác như Amazon, nhưng có mức kiểm soát chặt chẽ và đầy đủ hơn Để triển khai một hệ thống có khả năng đáp ứng các yêu cầu cao với Amazon, người dùng cần phải có trình độ và hiểu biết khá cao về hệ thống Đôi khi

Trang 22

việc cấu hình và viết các ứng dụng theo dõi, tự động mở rộng (Automatic scalability) cho AWS (Amazon Web Services) lại mất nhiều thời gian hơn chính việc viết ứng dụng Với App Engine của Google người dùng sẽ không phải lo lắng về những vấn đề

Giá thành ưu đãi: Cở sở hạ tầng App Engine hoàn toàn miễn phí cho đến khi chúng ta đạt đến ngưỡng về mức sử dụng – dung lượng lưu trữ 1GB , khoảng 5 triệu lượt xem trong mỗi tháng Và việc cấu hình hệ thống sẽ không đòi hỏi người dùng phải

có hiểu biết nhiều về hệ thống vì GAE là một hệ thống tích hợp với đầy đủ công cụ cho một ứng dụng web hiện đại Điều này có thể giúp các doanh nghiệp vừa và nhỏ tiết kiệm được một khoảng chi phí không nhỏ

1.4 MỤC ĐÍCH ĐỀ TÀI

Nghiên cứu và triển khai ứng dụng web trên nền tảng App Engine của Google, tìm hiểu API của GAE , sự hỗ trợ của GAE đối với ngôn ngữ Python và Java, dựa vào những kiến thức đã tìm hiểu được sẽ triển khai một ứng dụng web cho doanh nghiệp

1.5 ĐỐI TƯỢNG NGHIÊN CỨU

- Kiến trúc hoạt động GAE

Trang 23

- GAE APIs của Java và Python

- Triển khai hệ thống bán sơn trực tuyến cho Công ty TNHH Một thành viên Sơn Thắng Lợi

1.6 NỘI DUNG NGHIÊN CỨU

Nội dung nghiên cứu được chia thành hai giai đoạn :

- Giai đoạn 1: Khảo sát và nghiên cứu về cơ sở lý thuyết của Google App Engine Giai đoạn này bao gồm các công việc sau:

+ Tìm hiểu GAE là gì, tại sao GAE ra đời, nó ra đời dựa trên lý thuyết nào, và ý nghĩa của việc ra đời của GAE

+ Tìm hiểu về kiến trúc của Google App Engine, ưu nhược điểm của Google App Engine

+ Tìm hiểu sự hỗ trợ của GAE với Java

+ Tìm hiểu về ngôn ngữ lập trình và sự hỗ trợ của GAE với Python

- Giai đoạn 2: Nghiên cứu và triển khai hệ thống Online shoping trên GAE Giai đoạn này sẽ tập trung vào các vấn đề sau :

+ Tìm hiểu quy trình nghiệp vụ, thu thập các yêu cầu chức năng và phi chức năng

+ Đặc tả use case, thiết kế giao diện

+ Thiết kế và cài đặt class model

+ Triển khai hệ thống

+ Viết UserGuide

1.7 CÁC VẤN ĐỀ VÀ HƯỚNG NGHIÊN CỨU

Python là ngôn ngữ mới nên trong quá trình tìm hiểu khó tránh khỏi gặp phải khó khăn, vướng mắc

Trang 24

1.8 CẤU TRÚC LUẬN VĂN

Đề tài nghiên cứu gồm 5 chương:

CHƯƠNG 1: MỞ ĐẦU

- Trình bày sự cần thiết của đề tài, lý do chọn đề tài, mục tiêu nghiên cứu, đối tượng nghiên cứu, nội dung nghiên cứu và cấu trúc của khóa luận

CHƯƠNG 2: TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY

- Giới thiệu về điện toán đám mây

CHƯƠNG 3: GOOGLE APP ENGINE

- Trình bày những khái niệm về GAE, sự ra đời và quá trình phát triển

- Kiến trúc hoạt động của GAE

- Các thành phần của GAE

- Hạn chế của GAE

CHƯƠNG 4: CÁC DỊCH VỤ CỦA GAE

- Tìm hiểu một số dịch vụ mà GAE cung cấp

- Python API và Java API của các dịch vụ

CHƯƠNG 5: BÀI TÓAN ỨNG DỤNG - PHÁT TRIỂN HỆ THỐNG BÁN SƠN

TRỰC TUYẾN

- Giới thiệu hệ thống online shopping, các yêu cầu chức năng của hệ thống

- Phân tích use case, thiết kế giao diện

- Thiết kế các lược đồ lớp

- Triển khai hệ thống Online Shopping lên đám mây của Google

CHƯƠNG 6: KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN

- Các kết quả đạt được trong quá trình làm

- Một số kiến nghị cho hướng phát triển tiếp theo

Trang 25

CHƯƠNG 2: TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY

2.1 KHÁI NIỆM ĐIỆN TOÁN ĐÁM MÂY

Điện toán đám mây (Cloud Computing, hay còn biết đến với tên gọi “Điện toán máy chủ ảo”) là mô hình máy tính dựa trên nền tảng phát triển của Internet

Điện toán đám mây là sự nâng cấp từ mô hình máy chủ mainframe sang mô hình client-server Cụ thể, người dùng sẽ không còn phải có các kiến thức về chuyên mục để điều khiển các công nghệ, máy móc và cơ sở hạ tầng, mà các chuyên gia trong “đám mây” của các hãng cung cấp sẽ giúp thực hiện điều đó

Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ chỉ mạng Internet và như một liên tưởng về độ phức tạp của các cơ sở hạ tầng chứa trong nó Ở mô hình điện toán này, mọi khả năng liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các

"dịch vụ", cho phép người sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó "trong đám mây" mà không cần phải có các kiến thức, kinh nghiệm về công nghệ, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó

Tài nguyên, dữ liệu, phần mềm và các thông tin liên quan đều được chứa trên các server (chính là các “đám mây”)

Nói một cách đơn giản nhất “ứng dụng điện toán đám mây” chính là những ứng dụng trực tuyến trên Internet Trình duyệt là nơi ứng dụng hiện hữu và vận hành còn dữ liệu được lưu trữ và xử lý ở máy chủ của nhà cung cấp ứng dụng đó

Trang 26

Hình 2.1: Mô hình tổng quan của điện toán đám mây

2.2 NHỮNG ĐẶC ĐIỂM NỔI BẬT

- Tự phục vụ theo nhu cầu (On-demand self-service): Mọi yêu cầu đều được thực

hiện thông qua việc gửi yêu cầu qua môi trường internet, không cần tương tác trực tiếp với người cung cấp dịch vụ

- Truy xuất diện rộng (Broad network access): Cloud Computing cung cấp mọi

thứ trên nền tảng internet ( mọi thứ đều nằm trên mạng, người dùng chỉ cần một thiết bị đầu cuối có khả năng truy cập mạng và sử dụng) Chính vì thế với thiết bị cầm tay, có khả năng di dộng cao… Vẫn có thể sử dụng dịch vụ Cloud Computing, điều đó dẫn đến tiềm năng mở rộng cao

- Dùng chung tài nguyên (Resource pooling): Tài nguyên nhà cung cấp dịch vụ

được sử dụng để cung cấp cho nhiều người Nhờ công nghệ ảo hóa, tài nguyên

sẽ được phân phát theo nhu cầu người dùng theo từng thời điểm xác định.Nhờ

đó mà nâng cao khả năng phục vụ cho nhiều người dùng trên một đơn vị tài nguyên hiện có

Trang 27

- Khả năng co giãn (Rapid elasticity): Công nghệ Cloud Computing cho phép

khả năng tự động mở rộng hoặc thu nhỏ hệ thống tùy theo nhu cầu của người dùng Khi nhu cầu tăng cao, hệ thống sẽ tự mở rộng bằng cách thêm tài nguyên vào Khi nhu cầu giảm xuống, hệ thống sẽ tự giảm bớt tài nguyên Mọi thứ đều được thực hiện một cách linh động và mềm dẻo,hoàn toàn không thay đổi chất lượng dịch vụ với người dùng Nhờ đó mà nhà cung cấp giảm thiểu được tài nguyên dư thừa,đồng thời khách hàng cũng được hưởng lợi từ việc giảm thiểu chi phí không cần thiết

- Điều tiết dịch vụ (Measured service): Nhờ khả năng co giãn mà hệ thống có thể

tự động kiểm soát và tối ưu hóa việc sử dụng tài nguyên (dung lượng lưu trữ, đơn vị xử lý, băng thông…) Đảm bảo lợi ích cho cả người dùng và nhà cung cấp một cách minh bạch, rõ ràng

Trang 28

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

IaaS cung cấp dịch vụ cơ bản bao gồm: năng lực tính toán, không gian lưu trữ, kết nối mạng tới khách hàng Khách hàng (là 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ụng riêng tùy theo nhu cầu sử dụng Khách hàng điển hình của dị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ủa mình

Ví dụ điển hình về dịch vụ này là dịch vụ EC2 của Amazon Khách hàng có thể đăng ký sử dụng một máy tính ảo trên dịch vụ của Amazon và lựa chọn một hệ thống điều hành (ví dụ: Windows hoặc Linux) và tự cài đặt ứng dụng của mình

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

Cung cấp nền tảng điện toán cho phép khách hàng phát triển các phầ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 Cloud đó, mà không quan tâm đến chi phí hay sự phức tạp của việc trang bị và quản lý các lớp phần cứng và phần mềm bên dưới

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ập trình nhất định để xây dựng ứng dụng

Dịch vụ PaaS cũng có thể được xây dựng riêng và cung cấp cho khách hàng thông qua một API riêng Khách hàng xây dựng ứng dụng và tương tác với hạ tầng Cloud Computing thông qua API đó

Ở mức PaaS, khách hàng không quản lý nền tảng Cloud hay các tài nguyên lưu trữ

ở lớp dưới như hệ điều hành… 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 (Independent software vendor)

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àng xâ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 các ngôn ngữ lập trình chạy trên máy ảo Java hoặc Python

Trang 29

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ầu cho nhiều khách hàng với chỉ một phiên bản cài đặt Khách hàng không cần quan tâm đến việc vá lỗi, update, bảo trì các tài nguyên tính toán bên dưới, mà chỉ cần quan tâm đến việc lựa chọn ứng dụng phù hợp nhu cầu, và sử dụng đạt hiệu quả cao nhất

Dịch vụ SaaS nổi tiếng nhất phải kể đến Salesforce.com với các ứng dụng cho doanh 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 Online Office của Microsoft hay Google Docs của Google

2.4 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 2 lớp: Lớp Back-end và lớp Front-end

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

Trang 30

- 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ện

thô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ạy trê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 động thông qua giao diện đó

2.5 CÁC MÔ HÌNH TRIỂN KHAI ĐIỆN TOÁN ĐÁM MÂY

Từ “đám mây” (cloud) xuất phát từ hình ảnh minh họa mạng Internet đã được sử dụng rộng rãi trong các hình vẽ về hệ thống mạng máy tính của giới CNTT Một cách nôm na, điện toán đám mây là mô hình điện toán Internet Tuy nhiên, khi mô hình Cloud Computing dần định hình, các ưu điểm của nó đã được vận dụng để áp dụng trong các môi trường có quy mô và phạm vi riêng, hình thành các mô hình triển khai khác nhau

Trang 31

2.5.1 CÁC ĐÁM MÂY CÔNG CỘNG (PUBLIC CLOUD)

Hình 2.5: Mô hình Public Cloud

Đây là mô hình mà hạ tầng Cloud Computing đượ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àng thông qua hạ tầng mạng Internet hoặc các mạng công cộng diện rộng

Các dịch vụ Public Cloud hướng tới số lượng khách hàng lớn nên thườ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 chi phí thấp cho khách hàng Do đó khách hàng của dịch vụ trên mô hình Public Cloud, trong đó có khách hàng 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

Trang 32

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

Nhà cung cấp đám mây chịu trách nhiệm về cài đặt, quản lý, cung cấp và bảo trì Khách hàng chỉ chịu phí cho các tài nguyên nào mà họ sử dụng, vì thế cái chưa sử dụng được loại bỏ

2.5.2 CÁC ĐÁM MÂY RIÊNG (PRIVATE CLOUD)

Hình 2.6: Mô Hình Private Cloud

Còn gọi là đám mây “doanh nghiệp”, 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 chính tổ chức đó Tổ chức sở hữu có trách

Trang 33

lớn xây dựng cho mình nhằm khai thác ưu điểm về công nghệ và khả năng quản trị của Cloud Computing Với Private Cloud, 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ản xuất, kinh doanh ra thị trường

2.5.3 CÁC ĐÁM MÂY LAI (HYBRID CLOUD)

Là một sự kết hợp của các đám mây công cộng và riêng Những đám mây này thường do doanh nghiệp tạo ra và các trách nhiệm quản lý sẽ được phân chia giữa doanh nghiệp và nhà cung cấp đám mây công cộng Đám mây lai sử dụng các dịch vụ

có trong cả không gian công cộng và riêng

Doanh nghiệp sẽ chia chức năng nghiệp vụ và dữ liệu thành 2 loại : quan trọng và không quan trọng Các chức năng nghiệp vụ và dữ liệu không quan trọng sẽ được triển khai dưới dạng Public Cloud còn chức năng nghiệp vụ và dữ liệu quan trọng, cần bảo mật sẽ được triển khai dưới dạng Private Cloud.Tuy nhiên vấn đề đặt ra là làm sao ứng dụng đó có thể kết nối, trao đổi dữ liệu để hoạt động một cách hiệu quả mà vẫn đảm bảo được tính thống nhất giữa 2 mô hình triển khai

Trang 34

Hình 2.7: Mô hình Hybrid cloud

 

2.5.4 CÁC ĐÁM MÂY CHUNG (COMMUNITY CLOUD)

Một đám mây cộng đồng có thể được thiết lập bởi một số tổ chức có nhu cầu tương tự và tìm cách chia sẻ cơ sở hạ tầng để nâng cao hiệu quả đầu tư và sử dụng Tùy chọn này là tốn kém hơn nhưng có thể đáp ứng về sự riêng tư, an ninh hoặc tuân thủ các chính sách tốt hơn

Hình 2.8: Mô hình Community cloud

2.6 ƯU VÀ NHƯỢC ĐIỂM CỦA ĐIỆN TOÁN ĐÁM MÂY

Trang 35

- Không còn phụ thuộc vào thiết bị và vị trí địa lý, cho phép người dùng truy cập

và sử dụng hệ thống thông qua trình duyệt web ở bất kỳ đâu và trên bất kỳ thiết

bị nào mà họ sử dụng (chẳng hạn là PC hoặc là điện thoại di động…)

- Chia sẻ tài nguyên và chi phí trên một địa bàn rộng lớn, mang lại các lợi ích cho người dùng như:

o Tập trung cơ sở hạ tầng tại một vị trí giúp người dùng không tốn nhiều giá thành đầu tư về trang thiết bị

o Công suất xử lý nhanh hơn do tài nguyên được tập trung Ngoài ra, người dùng không cần phải đầu tư về nguồn nhân lực quản lý hệ thống

o Khả năng khai thác và hiệu suất được cải thiện hơn 10-20% so với hệ thống máy tính cá nhân thông thường

- Với độ tin cậy cao, không chỉ giành cho người dùng phổ thông, điện toán đám mây phù hợp với các yêu cầu cao và liên tục của các công ty kinh doanh và các nghiên cứu khoa học Tuy nhiên, một vài dịch vụ lớn của điện toán đám mây đôi khi rơi vào trạng thái quá tải, khiến hoạt động bị ngưng trệ Khi rơi vào trạng thái này, người dùng không có khả năng để xử lý các sự cố mà phải nhờ vào các chuyên gia từ đám mây tiến hành xử lý

- Khả năng mở rộng được, giúp cải thiện chất lượng các dịch vụ được cung cấp trên “đám mây”

- Khả năng bảo mật được cải thiện do sự tập trung về dữ liệu

- Các ứng dụng của điện toán đám mây dễ dàng để sửa chữa hơn bởi lẽ chúng không được cài đặt cố định trên một má tính nào Chúng cũng dễ dàng hỗ trợ

và cải thiện về tính năng

- Tài nguyên sử dụng của điện toán đám mây luôn được quản lý và thống kê trên từng khách hàng và ứng dụng, theo từng ngày, từng tuần, từng tháng Điều này đảm bảo cho việc định lượng giá cả của mỗi dịch vụ do điện toán đám mây cung cấp để người dùng có thể lựa chọn phù hợp

2.6.2 NHƯỢC ĐIỂM

Trang 36

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

mây có đảm bảo được riêng tư, và liệu các thông tin đó có bị sử dụng vì một mục đích nào khác?

- Tính sẵn dùng: Liệu các dịch vụ đám mây có bị “treo” bất ngờ, khiến cho người

dùng không thể truy cập các dịch vụ và dữ liệu của mình trong những khoảng thời gian nào đó khiến ảnh hưởng đến công việc?

- 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ải sao 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ời gian 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 Tuy nhiên, đây không thực sự là vấn đề của riêng “điện toán đám mây”, bởi lẽ tấn công đánh cắp dữ liệu là vấn đề gặp phải trên bất kỳ môi trường nào, ngay cả trên các máy tính cá nhân

Trang 37

CHƯƠNG 3: GOOGLE APP ENGINE

3.1 KHÁI NIỆM VÀ SỰ RA ĐỜI

Google App Engine (GAE) là một nền tảng để phát triển và lưu trữ những ứng dụng web trong những trung tâm dữ liệu do Google quản lý (Google-managed data centers) Bản beta được đưa vào sử dụng vào ngày 07/04/2008

GAE là 1 dịch vụ lưu trữ các ứng dụng web Khi nói đến “ứng dụng web”, chúng

ta muốn nói tới các ứng dụng hay dịch vụ được truy cập trên các trang web, thường là thông qua trình duyệt web: những trang web mua bán, mạng xã hội … App Engine cũng có thể phục vụ các trang web truyền thống như xử lý văn bản hay hình ảnh nhưng được thiết kế dành cho thời gian thực

Thực ra, GAE được thiết kế để lưu trữ những ứng dụng và phục vụ nhiều người dùng một cách đồng thời Khi một ứng dụng có thể phục vụ nhiều người dùng một cách đồng thời mà không làm giảm hiệu suất, chúng ta gọi đó là sự co giãn (scales) Những ứng dụng được viết cho App Engine sẽ được co giãn một cách tự động Càng nhiều người sử dụng chương trình, App Engine sẽ tạo ra càng nhiều tài nguyên cho ứng dụng

đó và quản lý chúng Chính bản thân ứng dụng cũng không cần phải biết đến các tài nguyên mà nó đang sử dụng

Không như những server cung cấp các dịch vụ lưu trữ thông thường hay các server có chức năng tự quản lý, với Google App Engine, chúng ta chỉ phải trả tiền cho những tài nguyên mà chúng ta sử dụng Những tài nguyên này được đo bằng gigabyte

và không có bất kì lệ phí hàng tháng nào hay lệ phí để chúng ta thay đổi diện mạo trang web Hóa đơn thanh toán những nguồn tài nguyên này bao gồm CPU chúng ta sử dụng, lưu trữ hàng tháng, băng thông vào ra (incoming and outgoing bandwidth), và một số các tài nguyên khác của dịch vụ App Engine Để giúp chúng ta có thể làm quen với GAE, mỗi lập trình viên sẽ có một lượng tài nguyên miễn phí đủ để chạy những ứng dụng nhỏ với băng thông thấp Google dự toán rằng với nguồn tài nguyên miễn phí, một ứng dụng có thể đạt tới 5 triệu lượt truy cập trong một tháng

Trang 38

3.2 KIẾN TRÚC HOẠT ĐỘNG

Hinh 3.1: Kiến trúc hoạt động của GAE

Cấu trúc của App Engine khác với những server lưu trữ ứng dụng web thông thường Ở phần lõi của nó, App Engine sẽ hạn chế những truy cập từ ứng dụng của chúng ta đến cơ sở hạ tầng vật lý, ngăn cản chúng ta từ việc mở các socket, chạy các tiến trình ngầm, hay các cách đi khác bằng cổng sau để giúp chương trình của ta có quyền trên môi trường này Hãy nhìn vào hình 3.1 Nên nhớ rằng, App Engine được thiết kế để giải quyết mối quan tâm của chúng ta về sự mở rộng và độ tin cậy Nó được xây dựng dựa trên khái niệm có thể mở rộng theo chiều ngang, nghĩa là thay vì ứng dụng của chúng ta sẽ được chạy trên một phần cứng mạnh mẽ, thì nó có thể chạy trên nhiều phần cứng yếu hơn

Trang 39

Ở hình 3.1, chúng ta có thể thấy ứng dụng App Engine đang chạy như một thực thể cô lập trong môi trường gồm nhiều thành phần (multitenant environment) Chúng ta thấy, App Engine chia sẻ những nguồn tài nguyên giữa các ứng dụng nhưng cô lập về

dữ liệu và bảo mật giữa những thành phần với nhau Ứng dụng của chúng ta có thể sử dụng một số các dịch vụ của Google, như là URLFetch Bởi vì chúng ta không thể mở cổng (port) một cách trực tiếp trong ứng dụng của mình, nên chúng ta phải lệ thuộc vào dịch vụ này, ví dụ: yêu cầu Google mở cổng và thực thi ứng dụng của mình

Xem xét kỹ hơn một chút, giả sử App Engine là một tòa nhà có gắn hệ thống điều hòa không khí và nhiệt độ Chúng ta là một phần trong căn nhà đó (chính xác hơn là ứng dụng của chúng ta) Chúng ta không thể điều chỉnh nhiệt độ một cách trực tiếp bởi

nó sẽ ảnh hưởng đến những phần khác trong tòa nhà (các ứng dụng khác) Vì vậy, chúng ta phải gửi một yêu cầu đến người chủ của căn nhà này để nhờ họ thay đổi nhiệt

độ cho chúng ta Chính xác đó là các dịch vụ của GAE như URLFetch, Bigtable query, Memcache, mail, XMPP, và các dịch vụ khác Đó chính là bản chất những gì đang xảy

ra trong App Engine

Như vậy, trong GAE, tùy vào ứng dụng viết theo ngôn ngữ nào, nó sẽ được chạy trên môi trường Java hay Python tương ứng Song song đó, chúng ta sẽ được cung cấp

sử dụng miễn phí các dịch vụ của google như URL Fetch, Mail, Memcache, … và được lưu trữ trên cơ sở dữ liệu hướng đối tượng datastore Khi yêu cầu được gửi lên từ phía người dùng, GAE sẽ chuyển yêu cầu đó cho ứng dụng của chúng ta Tùy theo việc xử

lý chúng mà ta cấu hình và sử dụng các ứng dụng thích hợp của GAE

3.3 CÁC THÀNH PHẦN CHÍNH CỦA GAE VÀ CHỨC NĂNG CỦA MỖI

PHẦN

3.3.1 MÔI TRƯỜNG THỰC THI (THE RUNTIME ENVIRONMENT)

Một ứng dụng App Engine đáp ứng các yêu cầu web Một yêu cầu web sẽ bắt đầu khi có một người dùng hay điển hình là các trình duyệt web của người dùng gửi một yêu cầu truy cập vào ứng dụng thông qua giao thức HTTP Khi App Engine nhận được

Trang 40

yêu cầu, nó sẽ xác định ứng dụng dựa vào tên miền, hoặc tên miền con của appspot.com (cung cấp miễn phí mỗi ứng dụng) hoặc là một tên miền riêng của chúng

ta đã được đăng kí và thiết lập với Google Apps App Engine lựa chọn một máy chủ từ nhiều máy chủ để xử lý các yêu cầu đó Sau đó, App Engine sẽ gửi các yêu cầu đã nhận được từ người dùng đến ứng dụng phù hợp để xử lý, sau khi đã xử lý xong các ứng dụng này sẽ gửi dữ liệu trả về cho App Engine, App Engine sẽ nhận dữ liệu phản hồi từ các ứng dụng và trả về cho người dùng thông qua trình duyệt web

Theo góc nhìn của ứng dụng, môi trường thực thi chỉ xuất hiện và tồn tại khi bắt đầu một yêu cầu và sẽ biến mất khi yêu cầu đó được đáp ứng xong App Engine cung cấp tối thiểu 2 cách thức lưu trữ dữ liệu tồn tại giữa các yêu cầu , nhưng các cơ chế này tồn tại bên ngoài môi trường thực thi Môi trường thực thi sẽ không duy trì trạng thái giữa các yêu cầu, hoặc ít nhất không mong muốn các trạng thái sẽ được duy trì giữa các yêu cầu App Engine có thể phân phát lưu lượng truy cập trong nhiều server, vì nó cần phải đáp ứng cho nhiều yêu cầu xử lý như nhau, bất kể có bao nhiêu lưu lượng truy cập

hỗ trợ người phát triển những dịch vụ cần thiết) Điều này cho phép App Engine xử lý một yêu cầu với một máy chủ mà nó mong muốn trong ước tính của nó để trả về phản hồi nhanh nhất Không có cách nào để đảm bảo rằng phần cứng trên cùng một máy chủ

Ngày đăng: 12/06/2018, 15:18

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