Tải bản đầy đủ (.pdf) (283 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.12 MB, 283 trang )

 

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
Ngành

: Hệ thống thông tin

Niên khoá

: 2007-2011

Lớp

: DH07DTH

Sinh viên thực hiện

: Nguyễn Hồ Yến Nhi
Trịnh Văn Qui
Võ Hà Tiến

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


 


 

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:

ThS. Mai Anh Thơ

Nguyễn Hồ Yến Nhi
Trịnh Văn Qui
Võ Hà Tiến

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

 

 



 

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

Năm
2011

 

 


 

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

 

 



 

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

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

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

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

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

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

Phái: nữ
Nơi sinh: Sông Bé
Ngành: Công nghệ 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

Phái: nam
Nơi sinh: Đồng Tháp
Ngành: Công nghệ 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
thông

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

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ơ
Ngày /
/
CÁN BỘ HƯỚNG DẪN

 

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

Ngày /
/
KHOA CNTT

 



 

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!

 

 


 

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




 
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
4.6.1.
TỔNG QUAN................................................................................................................................ 71
4.6.2.
API:................................................................................................................................................ 73

 

II 



 
4.6.2.1.
4.6.2.2.

PYTHON...................................................................................................................................73
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

 

III 


 

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

JPQL

Java Persistence Query Language
IV 


 

 

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




 

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
Hình A4: Màn hình xác thực tài khoản qua điện thoại. .................................................. 97
 

VI 


 

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

 

VII 


 

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

 

VIII 


 

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

 

IX 



 

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


 




 

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

 

XI 


 

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 

 

XII 


 

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.

 




 


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

hay Python trên cơ sở hạ tầng của mình.
 




 

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

 




 

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 đề
đó nữa.
Bên cạnh đó Google cung cấp cho người dùng khá tốt với hiệu suất làm việc và độ
tin cậy cao nhưng giá thành rất ưu đãi.
Sự tin cậy, hiệu suất và bảo mật của cơ sở hạ tầng Google: Google nổi tiếng về
hiệu suất làm việc và tính tin cậy cao. Với App Engine, chúng ta có được các thế mạnh
của Google như cơ chế bảo mật, quyền riêng tư và các chính sách bảo vệ cơ sở dữ liệu.
Các ứng dụng cung cấp sẵn của Google sẽ giúp ta dễ dàng quản lý các ứng dụng của
mình, dành thời gian tập trung phát triển các chức năng cho người dùng. Nếu như trước
đây vấn đề bảo mật vốn là rào cản lớn nhất khiến người dùng Việt Nam vốn e dè với

điện toán đám mây thì giờ đây với GAE đã khắc phục được yếu điểm đó.
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




 

-


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.

 




 

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




 

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


 




×