1 ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN
THÔNG
NGUYỄN ĐỨC ĐIỆP
NỀN TẢNG GOOGLE APP ENGINE VÀ ỨNG DỤNG
XÂY DỰNG CỔNG THÔNG TIN ĐIỆN TỬ TRƢỜNG
CAO ĐẲNG NGHỀ SỐ 3
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên, ngày tháng năm
Nguyễn Đức Điệp
3 LỜI CAM ĐOAN
Tôi cam đoan toàn bộ nội dung trong luận văn này là kết quả quá trình
tìm hiểu các tài liệu liên quan đến đề tài của tôi. Các số liệu, kết quả nêu trong
luận văn là trung thực và chƣa từng đƣợc công bố trong bất kỳ công trình nào
khác. (Ký tên và ghi rõ họ tên)
Nguyễn Đức Điệp 4
i
MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 3
MỤC LỤC i
CÁC THUẬT NGỮ VIẾT TẮT iv
DANH MỤC HÌNH VẼ vi
2.4. Dịch vụ App Engine 25
2.5. Giới hạn sử dụng 26
2.6. Ứng dụng trên Google App Engine 26
2.6.1. Tổng quan 26
2.6.2. Môi trƣờng chạy thực 27
2.6.3. Lƣu trữ dữ liệu 30
2.6.4. Hàng đợi tác vụ và tác vụ đƣợc lập lịch 36
2.6.5. Công cụ lập trình 36
2.6.6. Quản trị 37
2.6.7. Ứng dụng trên Google App Engine 38
2.6.8. Hạn chế 41
2.7. Tổng kết chƣơng 42
CHƢƠNG 3. XÂY DỰNG THỬ NGHIỆM CỔNG THÔNG TIN ĐIỆN TỬ
TRƢỜNG CAO ĐẲNG NGHỀ SỐ 3 DỰA TRÊN NỀN TẢNG GOOGLE APP
ENGINE 44
3.1. Cổng thông tin điện tử và một số khái niệm liên quan 44
3.1.1. Khái niệm về Portal 44
3.1.2. Các đặc trƣng cơ bản của Portal 45
3.1.2.1. Tập trung thông tin 45
3.1.2.2. Chức năng tìm kiếm 45
3.1.2.3. Các ứng dụng trực tuyến 45
3.1.2.4. Tùy biến cá nhân 46
3.1.2.5. Mô hình bảo mật thống nhất 46
3.2. Phân biệt Portal và website truyền thống 46
3.2.1. Website truyền thống 46
3.2.2. Portal 47
3.3. Phân loại Portal 48
3.3.1. Phân loại dựa trên cấu trúc nội dung thông tin 48
3.3.1.1. Vertical Portal (Portal theo chiều đứng) 48
3.3.1.2. Horizontal Portal (Portal theo chiều ngang) 48
iv
CÁC THUẬT NGỮ VIẾT TẮT
Tên viết
tắt
Tên khoa học
Giải nghĩa
AJAX
Asynchronous Javascript and
XML
JavaScript và XML không đồng bộ
API
Aplication Programming
Interface
Giao diện lập trình ứng dụng
AWS
Amazon Web Service
Dịch vụ Web của Amazon
CNTT
Information Technology
Công Nghệ Thông Tin
CIO
Chief Information Officer
Giám đốc công nghệ thông tin
CPU
Central Processing Unit
Đơn vị xử lý trung tâm
CSDL
Database
Protocol
Giao thức truy cập thƣ Internet
v
JDK
Java Development Kit
Bộ công cụ phát triển ứng dụng
ngôn ngữ Java
JDO
Java Data Objects
Các đối tƣợng dữ liệu Java
JDOQL
Java Data Objects Query
Language
Ngôn ngữ truy vấn dữ liệu trong
Datastore
JPA
Java Persistence API
NSD
User
Ngƣời Sử Dụng
PC
Personal Computer
Máy tính cá nhân
PaaS
Platform as a Service
Nền tảng nhƣ một dịch vụ
SaaS
Software as a Service
Địa chỉ truy cập tài nguyên Internet
VDW
Virtual Data Warehouse
Kho dữ liệu ảo
VM
Virtual Machine
Máy ảo
XML
eXtensible Markup
Language
Ngôn ngữ đánh dấu mở rộng
vi
DANH MỤC HÌNH VẼ
Hình 1.1.1. Mô hình chung của điện toán đám mây 4
Hình 1.3.1. Các mô hình triển khai của điện toán đám mây 11
Hình 1.4.1. Mô hình kiến trúc của điện toán đám mây 12
vii
1
MỞ ĐẦU
Hiện nay, bài toán quản lý và sử dụng hiệu quả dữ liệu của các cơ quan,
tổ chức đang là một trong những bài toán đƣợc ƣu tiên hàng đầu. Để thực hiện
đƣợc bài toán này, các cơ quan, tổ chức phải đầu tƣ tính toán các vấn đề nhƣ
chi phí phần cứng, phần mềm, nhân sự … Ngoài ra còn phải tính đến khả
năng mở rộng, nâng cấp và bảo mật dữ liệu.
Từ một bài toán điển hình nhƣ vậy, chúng ta thấy đƣợc rằng nếu có một
nơi tin cậy giúp các cơ quan, tổ chức quản lý tốt nguồn dữ liệu đó thì việc
xây dựng cổng thông tin điện tử trƣờng Cao đẳng nghề số 3” cho luận văn
tốt nghiệp của mình.
3 Chƣơng 1. TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY
1.1. Giới thiệu chung về mô hình điện toán đám mây
Điện toán đám mây là các phát triển dựa vào mạng Internet sử dụng các
công nghệ máy tính. Đây là một kiểu điện toán trong đó những tài nguyên
tính toán và lƣu trữ đƣợc cung cấp nhƣ những dịch vụ trên mạng. Ngƣời dùng
không cần biết hay có kinh nghiệm điều khiển và vận hành những công nghệ
này.
Trong điện toán đám mây, cơ sở hạ tầng trong suốt với ngƣời dùng,
ngƣời dùng sẽ dùng các tài nguyên mà điện toán đám mây cung cấp theo nhu
cầu riêng của họ vào bất kỳ lúc nào, cho dù họ ở bất cứ nơi đâu, miễn là họ có
kết nối Internet.
“Điện toán đám mây là một mô hình cho phép truy cập mạng theo nhu
cầu tới một nguồn tài nguyên máy tính dùng chung tin cậy và có thể cấu hình
đƣợc, các nguồn tài nguyên này có thể đƣợc cung cấp nhanh chóng và đƣợc
đƣa ra để công sức quản lý khách hàng nhỏ nhất hoặc ảnh hƣởng của các nhà
cung cấp dịch vụ nhỏ nhất”.
ĐTĐM đã trở thành một dịch vụ mở phổ biến trong lĩnh vực dịch vụ
CNTT. Các cơ sở kỹ thuật của ĐTĐM bao gồm kiến trúc hƣớng dịch vụ
(SOA) và công nghệ ảo hóa của phần cứng và phần mềm. Mục tiêu của
ĐTĐM là để chia sẻ tài nguyên giữa các ngƣời sử dụng dịch vụ đám mây, các
đối tác ĐTĐM và các nhà cung cấp ĐTĐM trong hệ thống.
Sự phát triển mạnh mẽ của ĐTĐM đã thu hút rất nhiều nhà khoa học,
các trƣờng đại học và cả các công ty CNTT đầu tƣ nghiên cứu. Rất nhiều
chuyên gia đã đƣa ra định nghĩa của mình về ĐTĐM. Mỗi nhóm nghiên cứu
- Cơ sở hạ tầng nhƣ là dịch vụ (IaaS) – thuê xử lý, lƣu trữ, mạng và các
tài nguyên máy tính cơ bản khác.
1.2.1. Phần mềm như là dịch vụ (SaaS)
Phần mềm hoạt động nhƣ một dịch vụ là một mô hình triển khai phần
mềm đƣợc phát triển và hoạt động trên nền tảng Internet đƣợc quản lý bởi nhà
cung cấp và cho phép ngƣời dùng truy cập từ xa. Đối với các phần mềm đóng
gói truyền thống, NSD thƣờng phải cài đặt vào hệ thống máy tính cá nhân
hoặc các máy chủ của họ. Còn dịch vụ SaaS, nhà cung cấp phần mềm dịch vụ
sẽ sở hữu phần mềm này và chạy phần mềm đó trên hệ thống máy tính ở
trung tâm dữ liệu của nhà cung cấp. Khách hàng không sở hữu phần mềm này
nhƣng họ có thể thuê nó để tiết kiệm chi phí cho việc mua máy chủ và bản
quyền phần mềm.
Khác với mô hình cung cấp phần mềm truyền thống, dịch vụ SaaS thay
vì việc cố gắng đáp ứng các yêu cầu của ngƣời dùng thì họ đƣa ra các giải
pháp “một cho tất cả”. Nghĩa là tất cả các khách hàng của một nhà cung cấp
sản phẩm phần mềm dịch vụ SaaS sẽ dùng chung một phần mềm. Mã chƣơng
trình đƣợc dùng cho tất cả khách hàng là giống nhau và không thể tuỳ chỉnh.
Bất cứ tính năng hay chức năng nào mà các nhà cung cấp SaaS thêm vào phần
mềm này đều dựa trên những phản hồi của khách hàng nhằm cung cấp một
phần mềm thích hợp nhất phục vụ cho số đông. Các nhà cung cấp cho thuê
dịch vụ SaaS cung cấp đồng thời một sản phẩm cho nhiều khách hàng, giúp
cho các nhà cung cấp sản phẩm phần mềm dịch vụ có thể cung cấp cho khách
hàng những sản phẩm thích hợp hơn với giá cả thấp hơn, nhờ đó khách hàng
6
có thể tiết kiệm chi phí hiệu quả và luôn đảm bảo chắc chắn sản phẩm họ
dùng sẽ đƣợc nâng cấp lên những phiên bản mới nhất.
Dịch vụ SaaS có các đặc tính sau:
- Truy cập và quản lý phần mềm thƣơng mại dựa trên mạng Internet.
- Các hoạt động đƣợc quản lý từ trung tâm thay cho mỗi vị trí của khách
trên thế giới mới có thể đáp ứng đƣợc những yêu cầu đó nhƣ Microsoft,
Google, IBM, Amazon,Yahoo, …
- Chi phí bảo trì, phát triển và cả trách nhiệm cho các sản phẩm phần
mềm cùng đội ngũ nhân viên sẽ tăng dần theo khối lƣợng dữ liệu khách hàng.
- Với các ứng dụng triển khai trực tuyến trên mạng Internet, nếu đƣờng
truyền Internet bị gián đoạn thì ảnh hƣởng rất lớn đến công việc của khách
hàng.
Trƣớc những ƣu thế vƣợt trội của mô hình SaaS, đã có nhiều nhà cung
cấp dịch vụ SaaS, điển hình là Google. Hãng đã cung cấp bộ phần mềm gồm
cả miễn phí lẫn tính phí là Google Apps. Bộ phần mềm này có nhiều chức
năng bao gồm thƣ điện tử (Gmail), lịch trực tuyến (Google Calendar), trao đổi
trực tuyến (Google Talk), … và đặc biệt là gói phần mềm văn phòng (Google
Documents & Spreadsheets) thực hiện soạn thảo, bảng tính,
1.2.2. Nền tảng như là dịch vụ (PaaS)
Khi khách hàng cần một môi trƣờng để phát triển ứng dụng, PaaS là một
sự lựa chọn tốt nhất. Nó mang đến môi trƣờng phát triển nhƣ một dịch vụ,
phục vụ yêu cầu của khách hàng. Khách hàng sẽ xây dựng ứng dụng chạy trên
cơ sở hạ tầng của nhà cung cấp và phân phối tới NSD thông qua máy chủ của
nhà cung cấp đó. Khách hàng không cần phải quản lý hoặc kiểm soát các cơ
sở hạ tầng bên dƣới bao gồm cả mạng, máy chủ, hệ điều hành, lƣu trữ, các
công cụ, môi trƣờng phát triển ứng dụng. Đặc biệt, PaaS sẽ giải quyết bài toán
8
“địa lý” khi nhóm phát triển ứng dụng ở những vùng địa lý khác nhau. Khi
khách hàng cần môi trƣờng để triển khai một ứng dụng, khách hàng sẽ gửi
yêu cầu tài nguyên về CPU, bộ nhớ và dung lƣợng lƣu trữ thông qua trình
duyệt, hệ thống của nhà cung cấp sẽ đáp ứng yêu cầu tài nguyên cho khách
hàng. Từ đó khách hàng có thể triển khai ứng dụng nhanh hơn, linh hoạt và
ổn định hơn trong khi chỉ phải trả chi phí cho tài nguyên mà mình sử dụng.
Một số nhà cung cấp dịch vụ PaaS điển hình là Google App Engine,
IAAS tập trung chủ yếu vào việc cho thuê các thiết bị phần cứng nhƣ
là máy chủ (server) , kỹ thuật networking và không gian lƣu trữ hơn là mua và
cài đặt nó trong trung tâm dữ liệu của riêng bạn.
Các đặc điểm chính của IAAS:
Các tài nguyên IAAS thì đƣợc phân phối nhƣ là dịch vụ. Các tài
nguyên đó là các máy chủ (server), thiết bị networking, bộ nhớ, CPU, không
gian vùng nhớ, vv
Cơ sở hạ tầng thay đổi động : bạn có thể điều chỉnh các tài nguyên
theo yêu cầu sử dụng của bạn. IAAS trong cloud sẽ đáp ứng nhanh chóng việc
tăng hay giảm tài nguyên một cách dễ dàng.
Có chi phí biến đổi nghĩa là tùy vào nhu cầu sử dụng khác nhau thì các
khách hàng sẽ trả trên các dịch vụ đó. Không cố định chi phí cho bất cứ dịch
vụ nào.
IAAS thƣờng có nhiều ngƣời thuê (leaseholders or tenants).
IAAS có những mức dịch vụ khác nhau đáp ứng cho tất cả nhu cầu
của doanh nghiệp.
1.3. Các mô hình triển khai của ĐTĐM
1.3.1. Mô hình đám mây công cộng (Public Cloud)
Các dịch vụ trên mô hình đám mây công cộng đƣợc nhà cung cấp dịch vụ
10
cung cấp cho mọi ngƣời sử dụng rộng rãi. Các dịch vụ đƣợc cung cấp và quản lý
bởi một Nhà cung cấp dịch vụ và các ứng dụng của ngƣời dùng đều nằm trên hệ
thống đám mây.
Ngƣời sử dụng dịch vụ sẽ đƣợc lợi là chi phí đầu tƣ thấp, giảm thiểu rủi ro do
nhà cung cấp dịch vụ đã gánh vác nhiệm vụ quản lý hệ thống, cơ sở hạ tầng, bảo
mật, … Một lợi ích khác của mô hình này là cung cấp khả năng co giãn theo yêu
cầu của NSD.
Tuy nhiên, mô hình đám mây công cộng có một trở ngại, đó là vấn đề mất
kiểm soát về dữ liệu và vấn đề an toàn dữ liệu. Trong mô hình này, mọi dữ liệu đều
riêng” mà nó vẫn có thể kết nối, trao đổi dữ liệu và hoạt động một cách hiệu
quả.
Hnh 1.3.1. Các mô hình triển khai của điện toán đám mây
1.4. Kiến trúc ĐTĐM
1.4.1. Mô hình kiến trúc tổng quát
Kiến trúc ĐTĐM gồm có các thành phần chính sau.
- Hạ tầng: Cơ sở hạ tầng (Infrastructure) của ĐTĐM là phần cứng đƣợc
cung cấp nhƣ là các dịch vụ, nghĩa là đƣợc chia sẻ và có thể sử dụng lại dễ
dàng. Các tài nguyên phần cứng đƣợc cung cấp theo thời gian cụ thể theo yêu
cầu.
- Lƣu trữ: Lƣu trữ đám mây (Cloud storage) là khái niệm tách dữ liệu
khỏi quá trình xử lý và chúng đƣợc lƣu trữ ở những vị trí từ xa.
12
- Cloud Runtime: Là dịch vụ phát triển phần mềm ứng dụng và quản lý
các yêu cầu phần cứng, nhu cầu phần mềm.
- Dịch vụ: Dịch vụ đám mây (Cloud service) là một phần độc lập có thể
kết hợp với các dịch vụ khác để thực hiện tƣơng tác, kết hợp giữa các máy
tính với nhau để thực thi chƣơng trình ứng dụng theo yêu cầu trên mạng.
- Ứng dụng: Ứng dụng đám mây (Cloud application) là một đề xuất về
kiến trúc phần mềm sẵn sàng phục vụ, nhằm loại bỏ sự cần thiết phải mua
phần mềm, cài đặt, vận hành và duy trì ứng dụng tại máy bàn/thiết bị
(desktop/device) của NSD. Ứng dụng đám mây loại bỏ đƣợc các chi phí để
bảo trì và vận hành các chƣơng trình ứng dụng.
- Hạ tầng khách hàng: Hạ tầng khách hàng đám mây (Client
Infrastructure) là những yêu cầu phần mềm hoặc phần cứng để sử dụng các
dịch vụ ĐTĐM trên mạng.
Hnh 1.4.1. Mô hình kiến trúc của điện toán đám mây
cầu của NSD. 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. Ngƣợc lại, khi nhu cầu giảm xuống, hệ thống sẽ tự giảm bớt
tài nguyên.
14
Khả năng co giãn giúp cho nhà cung cấp sử dụng tài nguyên hiệu quả,
tận dụng triệt để tài nguyên dƣ thừa, phục vụ đƣợc nhiều khách hàng. Đối với
khách hàng sử dụng dịch vụ, khả năng co giãn giúp họ giảm chi phí do họ chỉ
phải trả phí cho những tài nguyên thực sự dùng.
1.4.2.5. Điều tiết dịch vụ (Measured service)
Hệ thống ĐTĐM 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, …). Lƣợng tài nguyên
sử dụng có thể đƣợc theo dõi, kiểm soát và báo cáo một cách minh bạch cho
cả hai phía nhà cung cấp dịch vụ và khách hàng.
1.5. An ninh trong ĐTĐM
Trong môi trƣờng ĐTĐM, vấn đề an ninh cốt lõi là bảo vệ thông tin.
Trong ĐTĐM, thông tin đƣợc lƣu trữ ở nhiều nơi, có thể lƣu ở trung tâm dữ
liệu hoặc ở đâu đó trong “đám mây”. Do đó, chúng ta cần phải bảo vệ ở nhiều
nơi.
Để bảo mật đƣợc dữ liệu và các dịch vụ khi chúng đang đƣợc lƣu trữ hay
đang đƣợc sử dụng trên mạng, điều quan trọng là cần sử dụng những phƣơng
thức bảo mật sau:
- Bảo mật luồng thông tin đi vào trung tâm dữ liệu: Xác nhận và mã hóa
các kết nối tới thiết bị đầu cuối trong mạng tới các thiết bị của doanh nghiệp
trong khi vẫn có thể tăng thêm các thiết bị mới. Đồng thời cần phải ngăn chặn
những cuộc tấn công từ chối dịch vụ và triển khai tƣờng lửa để bảo vệ.
- Bảo mật luồng thông tin lƣu chuyển bên trong trung tâm dữ liệu: Phân
chia mạng thành các khối với các mạng nội bộ ảo, các khu vực, các bộ định
tuyến ảo, và mạng riêng ảo, đồng thời sử dụng tƣờng lửa để bảo vệ các dữ
liệu đƣợc truyền từ ứng dụng tới ứng dụng – giữa các máy chủ, giữa các máy