ĐIỆN TOÁN ĐÁM MÂY VỚI GOOGLE APP ENGINE VÀ CÀI ĐẶT ỨNG DỤNG THỬ NGHIỆM - Pdf 26

ĐẠI HỌC QUỐC GIA TP. HCM
TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN

ĐIỆN TOÁN ĐÁM MÂY VỚI GOOGLE
APP ENGINE VÀ CÀI ĐẶT ỨNG DỤNG
THỬ NGHIỆM
Giảng viên hướng dẫn : PGS.TS. Nguyễn Phi Khứ
Học viên thực hiện : Nguyễn Hữu Thành
Lớp : CH-CNTT K6
MSHV : CH1101136
TP. HCM, 07/2013
LỜI CẢM ƠN
Trong suốt quá trình tìm hiểu và thực hiện tiểu luận “Điện toán đám mây với Google
App Engine và cài đặt ứng dụng thử nghiệm” ngoài sự cố gắng của bản thân, tôi được
sự giúp đỡ tư vấn của thầy cô và bạn bè cùng lớp, tiểu luận đã cơ bản hoàn thành.
Tôi xin được bày tỏ lòng chân thành biết ơn tới các thầy cô giáo trường Đại học Công
nghệ thông tin, Đại học Quốc gia TP HCM nói chung và các thầy cô của phòng sau đại
học nói riêng.
Đặc biệt, tôi xin chân thành cảm ơn thầy PGS.TS Nguyễn Phi Khứ, thầy đã tận tình
hướng dẫn , và giảng dạy cho tôi được nhiều kiến thức quan trọng liên quan đến môn
học này.
Tp HCM, ngày 13 tháng 7 năm 2013
Nguyễn Hữu Thành
TÓM TẮT NỘI DUNG TIỂU LUẬN
Đ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ôi trường tính toán dựa trên internet mà ở đó tất cả phần mềm, dữ liệu, tài
nguyên được cung cấp cho máy tính và các thiết bị khác theo nhu cầ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ó.
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

2. Google Web Tootkit: GWT
3. Common Gateway Interface: CGI
4. Application Programming Interface: API
5. Dynamic Hypertext Markup Language: DHML
6. Domain Name System: DNS
7. Hypertext Transfer Protocol: HTTP
8. Hypertext Transfer Protocol Secure: HTTPS
9. Internet Information Services: IIS
10.Internet Protocol: IP
11.Really Simple Syndication: RSS
12.Security Assertion Markup Language: SAML
13.Software Development Kit: SDK
14.Simple Object Access Protocol: SOAP
15.Structured Query Language: SQL
16.eXtensible Markup Language: XML
MỞ ĐẦU
Trang 3
Trong lĩnh vực công nghệ thông tin, ngày nay ngoài các ứng dụng để bàn, một
xu hướng mới đáng chú ý là phát triển các ứng dụng web và các ứng dụng cho thiết
bị di động. Tất cả các ứng dụng này đều cần được lưu ở một máy chủ để người dùng
có thể truy cập được thông qua mạng.
Điện toán đám mây ra đời mang lại rất nhiều lợi ích. Thuật ngữ điện toán đám
mây ra đời không phải để nói về một trào lưu mới mà để khái quát lại các hướng đi
của cơ sở hạ tầng thông tin vốn đã và đang diễn ra từ mấy năm qua. Các nguồn điện
toán khổng lồ sẽ nằm tại các máy chủ ảo (đám mây) trên Internet thay vì trong máy
tính gia đình và văn phòng để mọi người kết nối sử dụng khi cần.
Điện toán đám mây là khái niệm hoàn chỉnh cho một xu hướng không mới bởi
nhiều doanh nghiệp hiện không có máy chủ riêng mà chỉ có máy tính với một số
phần mềm cơ bản, còn tất cả đều phụ thuộc vào đám mây. Với các dịch vụ có sẵn
trên Internet, doanh nghiệp không phải mua và duy trì hàng trăm, hàng nghìn máy

Điện toán đám mây thường bị nhầm lẫn với điện toán lưới (grid computing) (một
loại hình điện toán phân tán được tạo bởi các mạng máy tính nhỏ hoặc các cặp máy
tính, hoạt động phối hợp với nhau để thực hiện các chức năng rất lớn), điện toán theo
nhu cầu (utility computing) (khối những tài nguyên máy tính, như các bộ xử lý và bộ
nhớ, trong vai trò một dịch vụ trắc lượng tương tự với các công trình hạ tầng kỹ thuật
truyền thống) và điện toán tự trị (autonomic computing) (các hệ thống máy tính có khả
năng tự quản lý).
Trên thực tế, việc triển khai các cơ sở hạ tầng cho điện toán đám mây dựa trên
các đặc điểm của điện toán lưới, điện toán theo nhu cầu và điện toán tự trị. Điện toán
đám mây có thể được xem như là giai đoạn tự nhiên tiếp theo từ mô hình điện toán
lưới.
Trang 5
1.2 KIẾN TRÚC
Điểm chủ yếu trong cơ sở hạ tầng của điện toán đám mây hiện nay bao gồm các
dịch vụ tin cậy được phân phối qua trung tâm dữ liệu và được xây dựng trên các máy
chủ với các công nghệ ảo hóa khác nhau. Các dịch vụ này có thể truy cập được từ bất
kỳ nơi nào trên thế giới, và “đám mây” là điểm truy cập duy nhất đáp ứng tất cả nhu
cầu của người dùng máy tính. Việc cung cấp đám mây phải phù hợp với yêu cầu của
khách hàng về chất lượng dịch vụ và mức độ chấp nhận của dịch vụ. Các tiêu chuẩn
mở và phần mềm nguồn mở cũng quyết định đến sự lớn mạnh của điện toán đám mây.
Kiến trúc đám mây gồm: nền tảng đám mây (Cloud Platform), các dịch vụ đám
mây (Cloud Service), cơ sở hạ tầng đám mây (Cloud Infrastructure), lưu trữ đám mây
(Cloud Storage).
1.3 ĐẶC TÍNH
1.3.1 Tính tự phục vụ theo nhu cầu:
Đặc tính kỹ thuật của điện toán đám mây cho phép khách hàng đơn phương thiết
lập yêu cầu nguồn lực nhằm đáp ứng yêu cầu của hệ thống như: Thời gian sử dụng
Server, dung lượng lưu trữ, cũng như là khả năng đáp ứng các tương tác lớn của hệ
thống ra bên ngoài.
Trang 6

một số các đặc điểm sau :
Trang 7
Độ tin cậy: Độ tin cậy cải thiện thông qua việc sử dụng các site có nhiều dư
thừa, làm nó thích hợp cho tính liên tục trong kinh doanh và khôi phục thất bại. Tuy
nhiên, phần lớn các dịch vụ của cloud computing có những lúc thiếu hụt và người
giám đốc kinh doanh, IT phải làm cho nó ít đi.
Hiệu suất: Hiệu suất hoạt động được quan sát và các kiến trúc nhất quán, kết nối
lỏng lẽo được cấu trúc dùng web service như giao tiếp hệ thống.
Khả năng chịu đựng: Khả năng chịu đựng xảy ra thông qua việc tận dụng tài
nguyên đã được cải thiện, các hệ thống hiệu quả hơn. Tuy nhiên, các máy tính và cơ sở
hạ tầng kết hợp là những thứ tiêu thụ năng lượng chủ yếu.
1.4 CÁC CHÍNH SÁCH BẢO MẬT
 Phân quyền truy cập người dùng: xác định xem ai có quyền truy cập đặc biệt tới
dữ liệu và quyền của người quản trị.
 Điều chỉnh sự chấp thuận: đảm bảo rằng một nhà bán lẻ trải qua những kiểm tra
bên ngoài và những chứng nhận bảo mật.
 Định vị dữ liệu: xem nhà cung cấp có cho phép điều khiển qua các vùng dữ liệu
không.
 Chia tách dữ liệu: đảm bảo rằng tất cả các giai đoạn đều được mã hóa và tất cả
các giai đoạn mã hóa đều được thiết kế và kiểm thử bởi các chuyên gia giàu kinh
nghiệm.
 Khôi phục: xem điều gì sẽ xảy ra với dữ liệu nếu có rủi ro xảy ra, các nhà cung
cấp có cung cấp việc khôi phục hoàn toàn dữ liệu không, nếu có thì sẽ mất
khoảng bao lâu.
 Hỗ trợ điều tra: tìm hiểu xem nhà bán lẻ nào có khả năng điều tra phát hiện
những hoạt động không phù hợp hay những hoạt động bất hợp pháp.
 Tồn tại lâu dài: xem điều gì sẽ xảy ra với dữ liệu khi công ty không còn tồn tại
nữa, dữ liệu sẽ được trả về như thế nào, với định dạng nào.
Trang 8
1.5 THÀNH PHẦN

http://www.oracle.com/us/solutions/cloud/overview/index.html
 Facebook: https://www.facebook.com/
Có thể phân loại thành 3 nhóm liên quan:
 Nhà cung cấp: trực tiếp sở hữu và điều hành các hệ thống điện toán đám mây.
 Người dùng: là khách hàng của điện toán đám mây.
 Nhà bán lẻ: bán sản phẩm và dịch vụ.
1.7 LỢI ÍCH CỦA ĐIỆN TOÁN ĐÁM MÂY:
Tính linh động: Người dùng có thể thoải mái lựa chọn các dịch vụ phù hợp với
nhu cầu của mình, cũng có thể bỏ bớt đi các thành phần mà mình không muốn.
Giảm bớt phí: Người dùng không chỉ giảm bớt chi phí bản quyền mà còn giảm
phần lớn chi phí cho việc mua và bảo dưỡng máy chủ. Việc tập hợp ứng dụng của
nhiều tổ chức lại 1 chỗ sẽ giúp giảm chi phí đầu tư ban đầu, cũng như tăng hiệu năng
sử dụng các thiết bị một cách tối đa.
Tạo nên sự độc lập: Người dùng sẽ không còn bị bó hẹp với 1 thiết bị hay 1 vị
trí cụ thể nào nữa. Với điện toán đám mây, phần mềm và dữ liệu có thể được truy cập
Trang 10
và sử dụng bất kì đâu, trên bất kì thiết bị nào mà không cần quan tâm đến giới hạn
phần cứng cũng như địa lý.
Tăng cường độ tin cậy: Dữ liệu trong mô hình điện toán đám mây được lưu trữ
một cách phân tán tại nhiều cụm máy chủ tại nhiều vị trí khác nhau. Điều này giúp
tăng độ tin cậy, độ an toàn của dữ liệu mỗi khi có sự cố hay thảm hoạ xảy ra.
Bảo mật: Việc tập trung dữ liệu từ nhiều nguồn khác nhau sẽ giúp các chuyên
gia bảo mật tăng cường khả năng bảo vệ dữ liệu của người dùng, cũng như giảm thiểu
rủi ro bị ăn cắp toàn bộ dữ liệu.
Bảo trì dễ dàng: Mọi phần mềm đều nằm trên server, lúc này người dùng không
cần lo lắng cập nhật hay sửa lỗi phần mềm nữa. Và các lập trình viên cũng dễ dàng
hơn trong việc cài đặt, nâng cấp ứng dụng của mình.
Chương 2. GOOGLE APP ENGINE
2.1 GOOGLE APP ENGINE LÀ GÌ:
Google App Engine (App Engine hay GAE) là một nền tảng điện toán đám mây

2.2 KIẾN TRÚC HOẠT ĐỘNG GOOGLE APP ENGINE:
Kiến 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.
Trang 12
Ứ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. 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ừ
Trang 13
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.
2.3 THÀNH PHẦN CHÍNH VÀ CHỨC NĂNG TRONG

không thay đổi trong suốt hoạt động của site. Ví dụ như các hình ảnh và các file Css
hỗ trợ hiển thị của site, các đoạn mã Javascript chạy trên trình duyện, và các file
HTML tĩnh. Vì việc gửi những file này không cần đến việc gọi code của ứng dụng, nói
cách khác, việc này không cần thiết, làm giảm hiện quả làm việc của các server ứng
dụng.
Thay vì thế, App Engine cung cấp một tập các server tách biệt chuyên làm nhiệm
vụ trao đổi các file tĩnh này. Những server nói trên tối ưu hóa cho kiến trúc bên trong
và hạ tầng mạng để xử lý các requests cho các tài nguyên tĩnh. Đối với client, các file
tĩnh này cũng giống như các tài nguyên khác được cung cấp bởi ứng dụng của chúng
ta.
Chúng ta upload các file tĩnh cùng với code ứng dụng. Chúng ta có thể cấu hình
vài cách hiển thị nhất định cho các file này, bao gồm các URL cho file tĩnh, loại nội
dung, và các hướng dẫn cho trình duyệt để lưu các bản sao file này trong bộ nhớ cache
để giảm lưu lượng và tăng tốc cho trang web.
2.3.3 Kho dữ liệu (datastore):
Hầu hết mọi ứng dụng web đều cần một nơi để chứa thông tin khi xử lý yêu cầu
từ phía client và lấy thông tin cho những lần yêu cầu sau này. Việc sử dụng một server
làm một trung tâm dữ liệu là một ý tưởng rất hay nhưng có vấn đề xảy ra khi quá nhiều
kết nối được gửi tới server này.
Hệ thống database của Google App Engine gần giống như một đối tượng
database. Thiết kế của App Engine datastore chỉ là trừu tượng để cho App Engine có
thể xử lý việc phân tán và co giãn các ứng dụng. Chính vì thế trong các đoạn mã của
chúng ta sẽ quan tâm đến những thứ khác được nêu sau đây.
2.3.4 Thực thể (entities) và Thuộc tính (properties):
Một ứng dụng App Engine có thể chứa dữ liệu trong một hay nhiều thực thể
datastore. Mỗi thực thể có một hay nhiều thuộc tính, mỗi thuộc tính đều có tên và giá
trị. Mỗi thực thể đều được phân loại để tiện cho việc truy vấn.
Ở cái nhìn đầu tiên, chúng ta thấy thực thể có thể gần giống các hàng (row) trong
một bảng trong cơ sở dữ liệu quan hệ. Và mỗi thuộc tính có thể giống với một cột. Tuy
nhiên đối với các thực thể cùng loại với nhau có thể có các thuộc tính khác nhau. Thứ

mục và “optimistic concurrency control”, App Engine được thiết kế giúp cho ứng
dụng có thể đọc dữ liệu nhanh hơn và đảm bảo hơn.
Trang 16
2.4 CÁC DỊCH VỤ (SERVICES)
Dịch vụ chính là mối quan hệ giữa datastore với môi trường thực thi. GAE bao
gồm một số các dịch vụ hữu ích cho các ứng dụng web.
Dịch vụ memcache là dịch vụ lưu trữ theo khóa - giá trị. Thuận lợi chính của
dịch vụ này trên datastore là tốc độ nhanh, rất nhanh so với việc lưu trữ và lấy dữ liệu
một cách bình thường trên datastore. Memcache lưu trữ dữ liệu trên bộ nhớ thay vì
trên ổ đĩa để tăng tốc độ truy cập. Nó cũng phân tán như datastore tuy nhiên không lưu
trữ, vì thế nếu mất điện thì dữ liệu trên memcache cũng mất. Và nó cũng có nhiều giới
hạn sử dụng hơn datastore. Việc sử dụng memcache tốt nhất là lưu lại các kết quả của
các câu query hay các tính toán trước đó. Ứng dụng sẽ kiểm tra trong memcache, nếu
không có dữ liệu thì sẽ tiến hành query trên datastore.
Ứng dụng App Engine có thể truy cập các tài nguyên web khác nhờ vào dịch vụ
URL Fetch. Dịch vụ này tạo ra các yêu cầu theo dạng HTTP gửi đến các server khác
trên Internet như là việc tương tác với các web service khác. Vì khi ta truy cập đến
server khác thời gian sẽ lâu nên URL Fetch hỗ trợ chạy ngầm bên dưới trong khi xử lý
các yêu cầu khác.
Ứng dụng App Engine có thể gửi mail dựa vào dịch vụ Mail, hoặc nếu được cấu
hình, nó có thể nhận được email.
Ứng dụng App Engine có thể gửi và nhận những tin nhắn đến các dịch vụ chat có
sử dụng giao thức XMPP bao gồm Google Talk.
2.5 TÀI KHOẢN GOOGLE (google accounts):
Các chức năng của App Engine tích hợp trong các tài khoản của Google như
Google Mail, Google Docs và Google Calendar. Chúng ta có thể sử dụng tài khoản
trên Google như cho các ứng dụng của chúng ta, do đó không cần thiết lập thêm. Và
nếu các người dùng của chúng ta đã có tài khoản trên Google, họ có thể đăng nhập vào
ứng dụng của chúng ta với các tài khoản đó, mà không cần tạo tài khoản riêng trong
ứng dụng. Tất nhiên, điều đó không bắt buộc. Chúng ta luôn có thể xây dựng hệ thống

pháp bảo trì khác.
2.7 HẠN CHẾ CỦA GOOGLE APP ENGINE:
 App Engine hỗ trợ HTTPS đối với domain con của .appspot.com những vẫn chưa
hỗ trợ đối với các domain khác.
 Hiện Google App Engine hỗ trợ 2 loại ngôn ngữ là: Python, Java
 (Một số ngôn ngữ khác như PHP cũng có thể chạy được nếu cài cùng với bộ
chuyển từ PHP sang Java).
 Phụ thuộc hoàn toàn vào các dịch vụ của Google.
 Microsoft, … sẽ chẳng bao giờ mua sản phẩm được xây dựng trên nền tảng của
đối thủ.
Trang 18
 Các nhà đầu tư e ngại vì toàn bộ dữ liệu của mình đều nằm trong tay nhà cung
cấp dịch vụ, dù cho đó là Google.
Chương 3. HIỆN THỰC VÀ THỬ NGHIỆM HỆ
THỐNG
3.1 HƯỚNG DẪN TẠO GOOGLE APP ENGINE
Yêu cầu: Bạn phải có 1 tài khoản email để đăng ký.
Truy cập website: https://appengine.google.com
Tạo ứng dụng trên google apps engine
Trang 19
Nhập số điện thoại của bạn, sau đó, sẽ nhận được tin nhắn từ google apps engine
gửi về mã code cho bạn, điền mã code hợp lệ vào ô Enter Account Code.
Kết quả sau khi đăng ký mã code thành công:
Trang 20
Một hộp thoại sẽ xuất hiện yêu cầu bạn cung cấp một ID duy nhất cho ứng dụng
của bạn. Điều này là cần thiết bởi vì ứng dụng của bạn sẽ được sống trên Internet tại
<your_unique_app_name>.appspot.com. Kiểm tra để cho một ID duy nhất, chỉ bằng
cách nhấn vào nút "Check Availability", để xem nếu ID ứng dụng của bạn đã được
thực hiện bởi người khác hay chưa.
Ở mục “Application Tile”: bạn có thể đặt tên là Project hoặc tên hiệu cho ứng


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status