Tải bản đầy đủ (.doc) (38 trang)

NGHIÊN CỨU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY. XÂY DỰNG MỘT ỨNG DỤNG DEMO DÙNG TRONG GÓI THƯ VIỆN GOOGLE 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 (2.03 MB, 38 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Bài thu hoạch môn học
TÍNH TOÁN LƯỚI
Đề tài
NGHIÊN CỨU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY.
XÂY DỰNG MỘT ỨNG DỤNG DEMO
DÙNG TRONG GÓI THƯ VIỆN GOOGLE APP
ENGINE CỦA GOOGLE


Giáo viên hướng dẫn: TS. NGUYỄN PHI KHỨ
Học viên thực hiện: TRẦN MINH HÙNG
MSHV: CH1101087
CH-K6
TPHCM tháng 7/2013
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
MỤC LỤC

LỜI NÓI ĐẦU 4
CHƯƠNG I: CÁC KHÁI NIỆM 6
1. Khái niệm điện toán đám mây: 6
2. Lợi ích cloud computing: 6
3. Google App Engine là gì: 7
4. Sự khác nhau giữa Cloud Computing và Grid Computing 8
CHƯƠNG II CLOUD COMPUTING: LỢI ÍCH VÀ KHÓ KHĂN 10
1. Cloud có phải là giải pháp tối ưu cho các doanh nghiệp? 10
2. Những thuận lợi và khó khăn của cloud computing 10
1. Tính sẵn sàng 10
2. Data lock-in 11
3. Bảo mật và kiểm tra dữ liệu 12


4. Việc gây ra thắc cổ trai trong việc truyền dữ liệu 13
5. Khó tiên đoán trong hiệu suất thực thi của máy tính 13
6. Đáp ứng nhu cầu khả năng lưu trữ của người dùng 14
7. Khả năng tự co giãn của hệ thống 14
8. Bản quyền phần mềm 15
9. Lợi ích của Cloud Computing đối với doanh nghiệp[4] 16
10. Giảm chi phí 16
11. Sử dụng tài nguyên hiệu quả hơn 17
12. Tính linh hoạt 18
CHƯƠNG III: HƯỚNG DẪN CÀI ĐẶT 19
1. Yêu cầu: 19
2. Đăng kí tài khoản Google App Engine: 19
3. Tạo một project: 22
Học viện thực hiện: Trần Minh Hùng – CH1101087
2
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
4. Triển khai ứng dụng: 32
CHƯƠNG IV: HIỆN THỰC CHƯƠNG TRÌNH 35
KẾT LUẬN 37
TÀI LIỆU THAM KHẢO 38
Học viện thực hiện: Trần Minh Hùng – CH1101087
3
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
LỜI NÓI ĐẦU
Ngày nay, đối với các công ty, doanh nghiệp, 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 họ. Để 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.
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 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.
Thuật ngữ “cloud computing” ra đời bắt nguồn từ một trong những hoàn
cảnh như vậy.
Thuật ngữ “cloud computing” còn được bắt nguồn từ ý tưởng đưa tất cả
mọi thứ như dữ liệu, phần mềm, tính toán, … lên trên mạng Internet. Chúng
ta sẽ không còn trông thấy các máy PC, máy chủ của riêng các doanh nghiệp
để lưu trữ dữ liệu, phần mềm nữa mà chỉ còn một số các “máy chủ ảo” tập
trung ở trên mạng. Các “máy chủ ảo” sẽ cung cấp các dịch vụ giúp cho doanh
nghiệp có thể quản lý dữ liệu dễ dàng hơn, họ sẽ chỉ trả chi phí cho lượng sử
dụng dịch vụ của họ, mà không cần phải đầu tư nhiều vào cơ sở hạ tầng cũng
như quan tâm nhiều đến công nghệ. Xu hướng này sẽ giúp nhiều cho các công
ty, doanh nghiệp vừa và nhỏ mà không có cơ sở hạ tầng mạng, máy chủ để
lưu trữ, quản lý dữ liệu tốt.
Vậy “cloud computing” là gì ? Nó có thể giải quyết bài toán trên như thế
nào và có những đặc điểm nổi bật gì ? Việc nghiên cứu, tìm hiểu về cloud
computing là hết sức cần thiết để chúng ta có thể ứng dụng trong công việc cụ
Học viện thực hiện: Trần Minh Hùng – CH1101087
4
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
thể của từng các nhân, tổ chức hay doanh nghiệp. Đó cũng là lý do mà chúng
tôi thực hiện bài thu hoạch này.
Chúng tôi xin cảm ơn Thầy - TS. Nguyễn Phi Khứ, người đã tận tâm
truyền đạt những kiến thức nền tảng cơ bản về môn học “Tính toán lưới”, đã
cung cấp cho chúng tôi các kiến thức và công cụ hết sức bổ ích.

Do kiến thức còn hạn hẹp, bài thu hoạch có thể có những sai sót nhất
định, mong thầy và chúng ta góp ý để bài thu hoạch ngày càng hoàn thiện
hơn.
Chúng tôi xin tỏ lòng biết ơn sâu xa!
Học viên thực hiện đề tài
Trần Minh Hùng
Học viện thực hiện: Trần Minh Hùng – CH1101087
5
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
CHƯƠNG I:
CÁC KHÁI NIỆM
1. Khái niệm điện toán đám mây:
Điện toán đám mây là môi trường tính toán dựa trên internet mà ở đó tất
cả phần mềm, dữ liệu, tài nguyên được cung cấp cho máy tính và các thiết bị
khác theo nhu cầu (tương tự như mạng điện) – Theo Wikipedia
Mô hình này đã và đang được các công ty ,doanh nghiệp hướng đến .Sử
dụng mô hình này các doanh nghiệp chỉ cần trả phí cho những ứng dụng mà
họ dung ,mà không cần đầu tư nhiều vào sơ sở hạ tầng, cũng như quan tâm
nhiều đến công nghệ .
Mọi thứ đều tập trung vào đám mây
2. Lợi ích cloud computing:
• Tính linh động: Người dùng có thể thoải mái lựa chọn các dịch vụ
phù hợp với nhu cầu của mình, cũng như có thể bỏ bớt những thành phần mà
mình không muốn. (Thay vì phải bỏ ra hàng trăm USD cho 1 bộ Ms office, ta
có thể mua riêng lẻ từng phần hoặc chỉ trả 1 khoản phí rất nhỏ mỗi khi sử
dụng 1 phần nào đó của nó)
Học viện thực hiện: Trần Minh Hùng – CH1101087
6
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
• 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ị này một cách tối đa.
• Tạo nên sự độc lập: Người dùng sẽ không còn bị bó hẹp với 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, dữ liệu có thể
được truy cập và sử dụng từ bất kì đâu, trên bất kì thiết bị nào mà không cần
phải quan tâm đến giới hạn phần cứng cũng như địa lý. (Chúng ta có thể chơi
Call of Duty 6 trên iPad hoặc iPhone mà không cần quan tâm đến cấu hình
của nó)
• 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ữ 1 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ố hoặc
thảm họa xảy ra. (Hãy tưởng tượng 1 ngày nào đó, server yêu quý của công ty
tự nhiên bốc cháy với toàn bộ dữ liệu quý giá bên trong, chúng ta sẽ làm gì??)
• 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. (Dữ liệu được đặt tại 6 máy
chủ khác nhau → trong trường hợp hacker tấn công, chúng ta cũng sẻ chỉ bị
lộ 1/6. Đây là 1 cách chia sẻ rủi ro giữa các tổ chức với nhau)
• Bảo trì dễ dàng: Mọi phần mềm đều nằm trên server, lúc này, người
dùng sẽ không cần lo lắng cập nhật hay sửa lỗi phần mềm nữa. Và các lập
trình viên cũng dễ dàng hơn trong việc cài đặt, nâng cấp ững dụng của mình.
3. Google App Engine là gì:
“Google App Engine” (GAE) là một nền tảng hosting bao gồm web
server, cơ sở dữ liệu BigTable and kho lưu trữ file GFS. GAE cho phép chúng
ta viết ứng dụng web dựa trên cơ sở hạ tầng của Google. Nghĩa là chúng ta
không cần quan tâm là trang web chúng ta được lưu trữ như thế nào (kể cả
database đi kèm), mà chỉ cần quan tâm đến việc phát triển ứng dụng theo các
API do Google cung cấp.
Với App Engine,Chúng ta chỉ cần tải lên các ứng dụng của chúng ta, và

nó sẵn sàng để phục vụ người dùng của chúng ta.
Học viện thực hiện: Trần Minh Hùng – CH1101087
7
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
Chúng ta có thể sử dụng tên miền riêng của mình (chẳng hạn
như thông qua google apps. Hoặc chúng ta có thể
dùng sub-domain miễn phí của appspot.com.
GAE cho phép được host miễn phí với dung lượng 500 MB lưu trữ và cho
phép 10 GB băng thông lưu chuyển mỗi ngày hay tương đương 5 triệu
pageview hàng tháng,Vượt qua mức này chúng ta sẽ phải trả phí. Dùng GAE,
chúng ta khỏi phải thiết kế database, viết SQL để truy vấn data, map data vô
object. Chúng ta chỉ cần design các class và GAE tự động lo phần làm việc
với database.
Tóm lại, giờ đây chúng ta chỉ cần phải nghĩ ra và viết những ứng dụng
tuyệt vời nhất rồi kêu gọi cả thế giới vào dùng. Tuy nhiên, mặt trái của việc
xây dựng ứng dụng trên GAE là chúng ta sẽ phụ thuộc hoàn toàn vào các
công nghệ của Google và rất khó có thể tách ra thành một ứng dụng độc lập.
Yahoo hay Microsoft sẽ chẳng bao giờ mua một ứng dụng xây dựng trên nền
tảng của đối thủ. Còn các nhà đầu tư cũng rất e ngại khi tài sản của công ty
chúng ta đặt hết vào tay người khác, dù cho đó là Google.
Hiện AppEngine hỗ trợ 2 loại ngôn ngữ là: Python và Java. Một số ngôn
ngữ khác như PHP cũng có thể chạy được nếu cài cùng với bộ chuyển
từ PHP sang Java.
4. Sự khác nhau giữa Cloud Computing và Grid Computing
Sự khác nhau giữa Grid Computing và Cloud Computing
Grid computing Cloud computing
Sức mạnh tính toán
Tính toán mạnh hơn
Grid Computing; sử
dụng khả năng tính toán

của internet
Sử dụng khả năng tính
toán trong nội bộ của
Cloud.
Lưu trữ Lưu trữ nhiều hơn
Cloud Computing; dùng
các giao thức để tìm
kiếm các tài nguyên
thích hợp trên mạng để
lưu trữ.
Khả năng lưu trữ ít
hơn Grid Computing;
dùng các data center
trong việc lưu trữ
Tốc độ truyền dữ liệu
(trao đổi các resource
trong lúc thực thi)
Tốc độ chậm hơn Cloud
Computing; tốc độ của
đưởng truyền sử dụng
Nhanh hơn Grid
Computing, việc trao
đổi resource thường
Học viện thực hiện: Trần Minh Hùng – CH1101087
8
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
đường truyền internet,
tốc độ thường là mega
byte.
thực hiện bằng đường

truyền nội bộ, được
xây dựng để kết nối
giữa các data center.
Tốc độ có thể lên đến
hàng giga byte.
Khả năng mở rộng Có khả năng mở rộng.
Việc mở rộng được thực
hiện trên đường truyền
internet (khi có như cầu
sử dụng thêm resource
thì hệ thống sẽ tìm trên
mạng xem hiện có
resource nào đáp ứng
nhu cầu của mình phù
hợp không).
Có khả năng mở rộng,
co lại dễ dàng và
nhanh (theo nhu cầu
sử dụng).
Ví dụ: nếu trong một
thời điểm đang có 10
máy nhưng muốn có
20 máy thì Cloud
Computing có thể
cung cấp, hoặc muốn
giảm xuống chỉ sử
dụng còn 5 máy;
Cloud hổ trợ cho việc
này nhanh chóng.
Phạm vi Chủ yếu hướng tới khoa

học.
Chủ yếu hướng tới
thương mại, quan tâm
đến việc phục vụ nhu
cầu của khách hàng
thông qua việc cung
cấp các dịch vụ theo
nhu cầu của khách
hàng.
Resource Việc sử dụng resource
thông qua việc tìm kiếm
các resource trên
internet, người dùng
không thể cấu hình tài
nguyên theo ý muốn của
người dùng.
Cung cấp resource
theo dạng unified
resource, người dùng
được phép cấu hình
resource theo nhu cầu
của người sử dụng.
Bảng so sánh Cloud Computing và Gird Computing
Học viện thực hiện: Trần Minh Hùng – CH1101087
9
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
CHƯƠNG II
CLOUD COMPUTING: LỢI ÍCH VÀ KHÓ KHĂN
1. Cloud có phải là giải pháp tối ưu cho các doanh nghiệp?
Điều đó phụ thuộc vào quy mô của công ty, và tính chất kinh doanh mà

doanh nghiệp đó theo đuổi. Đối với các doanh nghiệp hoạt động mà dữ liệu
của công ty mang tính chất là sống còn trong việc kinh doanh thì công ty đó
sẽ xây dựng nên một hệ thống riêng trong công ty của mình vận hành như hệ
thống lưu trữ của các ngân hàng. Nhưng đối với các doanh nghiệp nhỏ thì
Cloud có lẽ là giải pháp tối ưu do họ không phải đầu tư vào cơ sở hạ tầng và
cũng không cần phải có phòng để quản lý, bảo trì vận hành hệ thống (như vấn
đề về việc thay thế các thiết bị lưu trữ, phải bảo đảm nhiệt độ của hệ thống
làm việc tốt, ngoài ra còn vấn đề về năng lượng tiêu thụ của hệ thống), và dữ
liệu của công ty thì có lẽ không quan trọng lắm.
Ngoài ra với các dịch vụ PaaS, thì vấn đề phụ thuộc vào nền tảng của nhà
cung cấp dịch vụ là rất nhiều. Ví dụ với Google và dịch vụ Google App
Engine thì khi khách hành phát triển một ứng dụng trên đó thì sẽ phụ thuộc
vào Google, vì hiện nay vấn đề API chưa được chuẩn hóa giữa các nhà cung
cấp dịch vụ theo dạng này trong Cloud Computing. Vì vậy nếu hệ thống của
Google có trục trặc hay có vấn đề khác. Nếu những điều đó làm ứng dụng của
mình không chạy được thì ứng dụng của mình cũng không thể chạy ở nơi
khác vì nền tảng bên dưới mà nhà cung cấp dịch vụ đã che dấu và cũng không
phải là mã nguồn mở.
2. Những thuận lợi và khó khăn của cloud computing
1. Tính sẵn sàng
Hiện nay, việc sử dụng các dịch vụ của cloud computing làm cho người
sử dụng lo lắng đến tính sẵn sàng của dịch vụ mà họ sử dụng. Nên đây là một
lý do có thể làm cho người sử dụng ngại sử dụng các dịch vụ của Cloud
Computing. Nhưng hiện tại, những người sử dụng dịch vụ của Cloud
Computing có thể an tâm về chất lượng dịch vụ. Ví dụ như trong SaaS có dịch
vụ tìm kiếm của Google, hiện tại khi người dùng truy cập vào trang web sử
Học viện thực hiện: Trần Minh Hùng – CH1101087
10
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
dụng dịch vụ tìm kiếm này thì có thể an tâm rằng mình luôn được đáp ứng

nếu mình truy cập không được thì có thể đó là vấn đề do kết nối đường truyền
mạng. Năm 2008, có một cuộc khảo sát về chất lượng dịch vụ thì có hai hãng
hàng đầu đạt chất lượng phục vụ tốt về tích sẵn sàng của dịch vụ.
Bảng khảo sát chất lượng dịch vụ
Ngoài ra sự đe dọa đến tính sẵn sàng của dịch vụ còn nằm ở chổ, khi dịch
vụ bị tấn công bằng cách DDOS (distributed denial of service attacks).Với
kiểu tấn công này làm cho các nhà cung cấp dịch vụ tốn một khoảng tiền lớn
để đối phó với cách tấn công này.
2. Data lock-in
Hiện nay các phần mềm đã được cải thiện khả năng tương tác giữa các
nền tảng khác nhau, nhưng các hàm API của Cloud Computing vẫn còn mang
tính đôc quyền, chưa được chuẩn hóa. Do đó khi một khách hàng viết một
ứng dụng trên một nền tảng do một nhà cung cấp dịch vụ thì ứng dụng đó sẽ
chỉ được sử dụng trên các dịch đó, nếu đem ứng dụng đó qua một nền tảng
khác do một nhà cung cấp dịch vụ khác cung cấp thì có thể không chạy được.
Điều này dẫn đến người sử dụng phụ thuộc vào nhà cung cấp dịch vụ. Ngoài
ra nhà cung cấp dịch vụ cũng sẽ tập trung hơn để phát triển dịch vụ của mình
để phục vụ nhu cầu người sử dụng tốt hơn.
Ngoài ra việc sử dụng các dịch vụ của cloud computing cũng gây ra một
vấn đề, khi dữ liệu của người sử dụng dịch vụ lưu trữ trên hệ thống của nhà
cung cấp dịch vụ thì có điều gì đảm bảo cho người sử dụng là dữ liệu của
mình sẽ an toàn, không bị rò rỉ ra bên ngoài. Hiện nay, về mặt kỹ thuật thì vẫn
chưa có cách nào hiệu quả để giải quyết vấn đề trên. Điều này dẫn đến việc
thực hiện hay sử dụng thường xảy ra đối với các nhà cung cấp dịch vụ có
tiếng, uy tín.
Học viện thực hiện: Trần Minh Hùng – CH1101087
11
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
Ví dụ: tháng 8 năm 2008 khi dịch vụ lưu trữ dữ liệu trực tuyến của
Linkup bị hỏng, sau khi phục hồi lại hệ thống thì phát hiện ra mất 45% dữ liệu

của khách hàng. Sau sự cố này thì uy tín và doanh thu của công ty hạ xuống.
Khoãng 20.000 người dùng dịch vụ của Linkup đã từ bỏ nhà cung cấp nay để
tìm đến một nhà cung cấp dịch vụ mới. Và sau đó dịch vụ này phải dựa trên
một dịch vụ lưu trữ trực tuyến khác để tồn tại là Nirvanix, và hiện nay hai
công ty này đã kết hợp với nhau trong việc cung cấp dịch vụ lưu trữ trực
tuyến.
Từ ví dụ trên ta thấy nếu các các nhà cung cấp dịch vụ có cơ chế chuẩn
hóa các API thì các nhà phát triển dịch vụ có thể triển khai dịch vụ trên nhiều
nhà cung cấp dịch vụ, khi đó một nhà cung cấp dịch vụ nào đó bị hỏng, thì dữ
liệu của các nhà phát triển không mất hết mà có thể nằm đâu đó trên các nhà
cung cấp dịch vụ khác. Nếu như cách này được các nhà cung cấp dịch vụ thể
hiện thì sẽ dẫn đến cuộc cạnh tranh về giá của nhà cung cấp. Hai tham số ảnh
hưởng đến việc lựa chọn một dịch vụ lúc đó là:
Tham số thứ nhất là chất lượng dịch vụ tương xứng với giá mà người sử
dụng trả cho nhà cung cấp dịch vụ. Hiện nay có một số nhà cung cấp dịch vụ
có giá cao gấp 10 lần so với các nhà cung cấp khác, nhưng nếu nó có chất
lượng tốt cộng thêm các tính năng hỗ trợ người dùng như: tính dễ dùng, một
số tính năng phụ khác…
Tham số thứ hai, ngoài việc giảm nhẹ data lock – in, thì việc chuẩn hóa
các API sẽ dẫn đến một mô hình mới: cơ sở hạ tầng cùng phần mềm có thể
chạy trên private cloud hay public cloud.
3. Bảo mật và kiểm tra dữ liệu
Như đã phân tích ở phần trước đó, khi đưa dữ liệu lên cloud thì một câu
hỏi đặt ra là: dữ liệu của mình có an toàn không? Do đó các dữ liệu nhạy cảm
của các công ty thường không để lên cloud lưu trữ. Việc để dữ liệu lên đó sẽ
làm cho khả năng bị nhiều khác truy xuất hơn. Và vấn đề này đang là một
thách thức thực sự đối với công nghệ hiện đại trong việc việc bảo mật dữ liệu.
Hiện nay có một giải phát là những người dùng dịch vụ Cloud phải mã hóa dữ
liệu trước khi đưa lên hệ thống cloud, và khi muốn sử dụng dữ liệu này thì
phải thực hiện công việc giải mã này ở máy local. Ví dụ việc mã hóa dữ liệu

trước khi đưa lên cloud sẽ bảo mật hơn so với đem dữ liệu lên cloud mà
không có mã hóa. Mô hình này đã có những thành công nhất định đối với đối
Học viện thực hiện: Trần Minh Hùng – CH1101087
12
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
với việc sử dụng TC3, đây là công ty về chăm sóc sức khỏe (công ty này sử
dụng hệ thống TC3), dữ liệu của họ là những thông tin nhạy cảm ( dữ liệu của
họ chủ yếu là về các thông tin bệnh của các bệnh nhân).
Ngoài ra, còn có thể thêm vào việc ghi nhận lại các thộng tin mà hệ thống
đã làm, và sử dụng các hệ điều hành ảo khi cung cấp dịch vụ IaaS sẽ làm cho
ứng dụng của mình khó bị tấn công hơn.
Việc bảo mật dữ liệu ngoài các vấn đề về kỹ thuật thì nó còn liên quan
đến các vấn đề khác như con người, các đạo luật… Việc sử dụng các luật bảo
vệ người sử dụng dịch vụ cloud khi họ đưa dữ liệu của mình lưu trữ trên
Cloud, thì các nhà cung cấp dịch vụ phải bảo đảm dữ liệu của khách hàng
không bị rò rỉ ra bên ngoài.
Thêm vào đó các nhà cung cấp dịch vụ SaaS còn cung cấp cho người
dùng cơ chế lựa chọn vị trí mà người dùng muốn lưu trữ dữ liệu cũa mình. Ví
dụ: Amazon cung cấp dịch S3, khi sử dụng dịch vụ này người dùng có thể lưu
trữ dữ liệu vật lý của mình ở châu Âu hay ở Mỹ.
4. Việc gây ra thắc cổ trai trong việc
truyền dữ liệu
Đối với các ứng dụng, mà lúc đầu ứng dụng bắt đầu chạy thường thì dữ
liệu ít, và càng về sau thì dữ liệu càng nhiều. Và ngoài ra có thể có ứng dụng
chạy trên Cloud mà dữ liệu có thể lưu ở các vị trí khác nhau. Khi lúc ứng
dụng này chạy có thể dẫn đến việc vận chuyển giữa các dữ liệu (việc vận
chuyển dữ liệu giữa các data center). Hiện nay giá của việc vận chuyển dữ
liệu là 100$ đến 150$ cho mỗi terabyte vận chuyển. Khi ứng dụng chạy càng
về sau thì chi phí này có thể càng tăng lên, làm cho chi phí truyền tải dữ liệu
là một vấn đề quan trọng trong chi phí vận hành ứng dụng. Và vấn đề này

cũng đã được các nhà cung cấp dịch vụ Cloud và những người sử dụng Cloud
suy nghĩ đến. Và vấn đề này đã được giải quyết trong dịch vụ Cloudfront mà
công ty Amazon đã phát triển.
5. Khó tiên đoán trong hiệu suất thực thi
của máy tính
Khi nhiều máy ảo chạy cùng chạy, thì vấn đề chia sẽ về CPU hay bộ nhớ
đạt hiệu quả cao, nhưng vấn đề giao tiếp IO của các máy ảo này gây ra nhiều
vấn đề về hiệu suất.
Học viện thực hiện: Trần Minh Hùng – CH1101087
13
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
Biểu đồ so sánh hiệu xuất chạy 72 máy ảo trên EC2 giữa các máy
chia sẻ bộ nhớ (a) và máy chia sẻ ổ cứng (b)
Để giảm ảnh hưởng của việc truy xuất vào ổ cứng. Ta có thể dùng flash
để hạn chế trong giảm hiệu suất này.
6. Đáp ứng nhu cầu khả năng lưu trữ của
người dùng
Đây là một tính năng khá tốt của Cloud Computing, phục vụ theo nhu cầu
người dùng: khi người dùng muốn mở rộng khả năng lưu trữ do nhu cầu tăng
lên thì hệ thống có nhiệm vụ cung cấp đủ dung lượng cho người sử dụng, khi
người dùng muốn giảm khả năng lưu trữ thì hệ thống có nhiệm vụ thu hồi
dung lượng đã cấp cho người sử dụng.
Điều này gây ra khó khăn trong việc quản lý hệ thống lưu trữ (khi một
người sử dụng mua một khoảng dung lượng thì phải cung cấp cho người đó
bao nhiêu? vừa đủ cho người sử dụng yêu cầu hay nhiều hơn yêu cầu?), tăng
độ phức tạp cấu trúc dữ liệu (cấu trúc dữ liệu làm sao hổ trợ vấn đề lưu trữ,
vấn đề duyệt, vấn đề mở rộng ), hiệu suất truy xuất dữ liệu trong ổ cứng
không cao (nếu phục vụ nhu cầu của người sử dụng thì hệ thống lưu trữ của
mình có thể dễ bị hiện tượng phân mảnh trong lưu trữ). Điều này dẫn đến vần
đề nghiên cứu tạo ra một hệ thống lưu trữ sao cho tiện lợi trong phục vụ nhu

cầu khả năng lưu trữ của người sử dụng.
7. Khả năng tự co giãn của hệ thống
Học viện thực hiện: Trần Minh Hùng – CH1101087
14
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
Hiện nay, Google triển khai platform Google App Engine giúp đỡ các
developer phát triển web application. Khi người sử dụng dùng dịch vụ này
của Google khi triển khai ứng dụng, nếu ứng dụng của mình sử dụng hết tài
nguyên mua của Google nếu mình chọn ở mức mua dữ liệu (Google còn cung
cấp thêm một mức là sử dụng miễn phí không có chức năng này) thì khi đó
google tự động cung cấp thêm tài nguyên (dung lượng lưu trữ, số clock mà
CPU chạy cho ứng dụng) cho ứng dụng ta chạy đồng thời tính thêm tiền cần.
Đây cũng là một thách thức trong việc nhận ra khi nào tài nguyên người sử
dụng đã dùng ở mức quá hạn và cung cấp thêm tài nguyên người dùng (đây là
vấn đề cần thiết nếu nhà cung cấp dịch vụ không cung cấp kịp tài nguyên thì
hệ thống người dùng triển khai trên nên tảng của nhà cung cấp dịch vụ có thể
gây ra tình trạng hỏng).
Ngoài ra nếu giải quyết được bài toán tự co giãn tài nguyên của người sử
dụng thuê thì nhà cung cấp dịch vụ cũng sẽ tiết kiệm được một khoảng tiền.
Theo nghiên cứu của của trường đại học California thì khi một hệ thống hoạt
động ở trạng thái hoạt động nhiều nhất, cũng chỉ sử dụng 2/3 công suất của hệ
thống. Vậy nếu giải quyết tốt thì khi nhà cung cấp dịch vụ cho thuê 2 máy, có
thể điều chỉnh hiệu suất của 2 máy này đạt hiệu quả hơn. Giả sử hệ thống ta
có thể cung cấp 100%, giả sử rằng ta cho 2 người dùng thuê tài nguyên và cả
2 không bao giờ sử dụng tài nguyên này hết 100%. Nếu bài toán co giãn tài
nguyên được giải quyết thì ta có thể bán 100% hệ thống của ta cho 2 người sử
dụng này.
8. Bản quyền phần mềm
Hiện tại các máy tính nếu không có phần mềm thì máy tính cũng chỉ là
các linh kiện không có khả năng hoạt động tốt. Nếu máy tính có thêm các

phần mềm thì các máy tính sẽ hoạt động hết tất cả khả năng của nó. Nhưng
bản quyền phần mềm cũng là một vấn đề đối với các nhà cung cấp dịch vụ và
những người sử dụng dịch vụ điện toán đám mây, ngoài ra còn tiền vận hành
và bảo trì phần mềm. Ví dụ: theo như hãng SAP công bố thì chi phí để bảo trì
vận hành phần mềm hằng năm chíếm ít nhất 22% giá trị của phần mềm. Đây
cũng là cơ hội cho sự phát triển của các phần mềm mã nguồn mở cũng như
cách tính phí của các phần mềm mã nguồn đóng, vì dụ giống như nhà cung
cấp Amazone và Microsoft có sự kết hợp với nhau trong phục vụ khách hàng,
về cách tính phí phần mềm và việc sử dụng dịch vụ EC2 của người sử dụng.
Học viện thực hiện: Trần Minh Hùng – CH1101087
15
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
Nếu khách hàng dùng EC2 để chạy các phần mềm có bản quyền của
Microsoft như Window Server hay Window SQL Server thì bị tính phí là
0,15$ còn ngược lại nếu dùng dịch vụ EC2 mà sử dùng phần mềm mã nguồn
mở thì chỉ phải trả 0,1$.
9. Lợi ích của Cloud Computing đối với
doanh nghiệp[4]
Ưu việt của Cloud Computing so với những công nghệ có trước là nó
cho phép người dùng một khả năng sử dụng tài nguyên hiệu quả, với chi phí
thấp, người dùng chỉ trả chi phí cho nhà cung cấp những gì đã sử dụng.
10. Giảm chi phí
Khi doanh nghiệp sử dụng dịch vụ Cloud Computing, đặc biệt là Public
Cloud, thì chi phí đầu tư ban đầu rất thấp. Nếu doanh nghiệp tự xây dựng một
hệ thống quy mô lớn cho mình thì chi phí đầu tư rất lớn (mua phần cứng,
quản lý nguồn điện, hệ thống làm mát, nguồn nhân lực vận hành hệ thống…).
Và các dự án tốn kém như vậy thường cần rất nhiều thời gian để được phê
chuẩn. Việc xây dựng một hệ thống như vậy cũng đòi hỏi nhiều thời gian. Giờ
đây, nhờ Cloud Computing, mọi thứ đã được nhà cung cấp dịch vụ chuẩn bị
sẵn sàng, doanh nghiệp chỉ cần thuê là có thể sử dụng được ngay mà không

phải tốn chi phí đầu tư ban đầu.
Cloud Computing giúp doanh nghiệp giảm chi phí đầu tư
Một yếu tố giúp giảm chi phí nữa là khách hàng chỉ trả phí cho những
gì họ thật sự dùng (Usage-based costing). Với những tài nguyên đã thuê
nhưng chưa dùng đến (do nhu cầu thấp) thì khách hàng không phải trả tiền.
Đây thật sự là một lợi ích rất lớn đối với doanh nghiệp khi sử dụng dịch vụ
Cloud Computing.
Học viện thực hiện: Trần Minh Hùng – CH1101087
16
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
11. Sử dụng tài nguyên hiệu quả hơn
Nhờ khả năng co giãn (elasticity) nên tài nguyên luôn được sử dụng
một cách hợp lý nhất, theo đúng nhu cầu của khách hàng, không bị lãng phí
hay dư thừa. Đối với nhà cung cấp dịch vụ, công nghệ ảo hóa giúp cho việc
khai thác tài nguyên vật lý hiệu quả hơn, phục vụ nhiều khách hàng hơn.
Một yếu tố khác ảnh hưởng đến việc sử dụng tài nguyên đó là cách
“gán” (cấp phát) tài nguyên cho khách hàng. Các mô hình truyền thống hiện
thực cấp phát tài nguyên theo kiểu single-tenant: một tài nguyên được cấp
phát “tĩnh” trực tiếp cho một khách hàng, như vậy một tài nguyên chỉ có thể
phục vụ cho một khách hàng dù cho khách hàng đó có những lúc không có
nhu cầu sử dụng thì tài nguyên đó sẽ ở trạng thái rảnh, dư thừa chứ không
được thu hồi lại.
Single-tenant
Cloud Computing hiện thực việc phân phối tài nguyên theo kiểu multi-
tenant: một tài nguyên có thể được cấp phát “động” cho nhiều khách hàng
khác nhau, các khách hàng này sẽ luân phiên sử dụng tài nguyên được cấp
phát chung. Với mô hình multi-tenant, một tài nguyên có thể phục vụ cho
nhiều khách hàng khác nhau. Như vậy khi khách hàng không có nhu cầu, tài
nguyên rảnh sẽ được hệ thống thu hồi lại và cấp phát cho khách hàng khác có
nhu cầu.

Học viện thực hiện: Trần Minh Hùng – CH1101087
17
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
Multi-tenant
12. Tính linh hoạt
Nhờ khả năng co giãn mà Cloud Computing cung cấp, hệ thống của
khách hàng có khả năng mở rộng hoặc thu nhở một cách linh hoạt tùy theo
nhu cầu cụ thể. Doanh ghiệp có thể khởi đầu với quy mô nhỏ, nhu cầu thấp
nhưng sau đó phát triển mở rộng quy mô với nhu cầu tăng cao.
Các dịch vụ Cloud Computing có thể được truy xuất ở bất kỳ đâu, bất
kỳ lúc nào thông qua mạng internet.
Khách hàng có thể lựa chọn nhà cung cấp dịch vụ nào đáp ứng tốt nhất
cho nhu cầu của mình với giá cả và chất lượng dịch vụ hợp lý nhất.
Với Cloud Computing, doanh nghiệp sẽ chuyển hầu hết trách nhiệm về
kiểm soát hệ thống, quản lý hạ tầng, bảo mật, đảm bảo chất lượng dịch vụ…
cho nhà cung cấp dịch vụ. Khi đó doanh nghiệp sẽ giảm rất nhiều chi phí và
chỉ tập trung vào nhiệm vụ chính là kinh doanh, không phải bận tâm nhiều
đến việc quản lý, kiểm soát hệ thống.
Học viện thực hiện: Trần Minh Hùng – CH1101087
18
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
CHƯƠNG III:
HƯỚNG DẪN CÀI ĐẶT
1. Yêu cầu:
- Eclipese hay jcreator
- Google plugin cho Eclipese
- AppEngine-java-SDK-1.3.8.zip
2. Đăng kí tài khoản Google App Engine:
Bước 1:Để triển khai các ứng dụng của chúng ta với các đám mây
của Google, chúng ta cần một tài khoản AppEngine. Làm được một tài

khoản chúng ta cần một tài khoản email của Google.
Open và đăng nhập với thông tin tài
khoản gmail của chúng ta
Bước 2: Chọn nút Create Application

Học viện thực hiện: Trần Minh Hùng – CH1101087
19
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
Bước 3:
Chúng ta cần phải xác minh tài khoản của chúng ta thông qua một số điện
thoại hợp lệ. Sau khi cung cấp số điện thoại của chúng ta, Google sẽ nhắn cho
chúng ta một mã xác minh qua SMS.
Bước 4:
Nhập mã xác nhận của google
Bước 5:
Học viện thực hiện: Trần Minh Hùng – CH1101087
20
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
Tiến hành tạo một ứng dụng. Chúng ta được phép tạo được 10 ứng dụng
cho một tài khoản gmail.
Học viện thực hiện: Trần Minh Hùng – CH1101087
21
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
Đây là giao diện chính của ứng dụng chúng ta tạo ra.
3. Tạo một project:
Các ứng dụng App Engine Java sử dụng các chuẩn java servlet để tương
tác với môi trường máy chủ web. Các file của một ứng dụng bao gồm: các file
class đã được biên dịch từ file java, các file JAR của bộ thư viện, các file tĩnh
(css,…) và các file xml cấu hình. Tất cả được sắp xếp theo một cấu trúc thư
mục và nằm trong thư mục WAR.

a. Cấu trúc thư mục project:
Một thư mục với tên Guestbook được tạo để chứa dự án. Bên trong là hai
thư mục, một thư mục mang tên /src để chứa mã nguồn java và một thư
mục /war để chứa các file class được biên dịch từ file nguồn java. Thư mục
war được xem là một ứng dụng hoàn chỉnh dùng để up lên Google App.
Tạo cây thưc mục như sau:
Học viện thực hiện: Trần Minh Hùng – CH1101087
22
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
b. The servlet class:
Các ứng dụng App Engine Java sử dụng java servlet API để tương tác
với máy chủ web. Một HTTP Servlet là một lớp ứng dụng có khả năng xử lý
và phản hồi các yêu cầu web. Lớp này thừa kế lớp
javax.servlet.GenericServlet hoặc lớp javax.servlet.http.HttpServlet.
Trong thư mục src/guestbook tạo một file có tên GuestbookServlet.java
có nội dung:
Học viện thực hiện: Trần Minh Hùng – CH1101087
Guestbook
Src (mã nguồn)
Guestbook
META-INF
(file cấu hình)
Greeting.java
GuestbookServlet.java
PMF.java
SignGuestbookServlet.java
Jdoconfig.xml
Guestbook.jsp
war
WEB-INF

Web.xml
Appengine-web.xml
classes
lib
Compiled classes
JARs for Libraries
23
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
package guestbook;
import java.io.IOException;
import javax.servlet.http.*;
import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;
public class GuestbookServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
if (user != null) {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, " + user.getNickname());
} else {
resp.sendRedirect(userService.createLoginURL(req.getRequestURI()));
}
}
}
Google App Engine cung cấp một số dịch vụ hữu ích dựa trên cơ sở hạ
tầng Google, có thể truy cập bởi các ứng dụng bằng cách sử dụng thư viện có
trong SDK. Một trong những dịch vụ là dịch vụ người dùng, cho phép tích

hợp các ứng dụng của chúng ta với tài khoản người dùng Google. Với dịch
vụ người dùng, người dùng của chúng ta có thể sử dụng Google các tài khoản
mà họ đã có để đăng nhập vào ứng dụng của chúng ta.
Trong đoạn code trên, class GuestbookServlet sử dụng Users API để kiểm
tra xem người dùng đã đăng nhập với tài khoản Google. Nếu chưa, thì người
dùng sẽ được chuyển đến màn hình đăng nhập tài khoản Google.
userService.createLoginURL( ) sẽ trả về URL của màn hình đăng nhập.
c. Signgustbookservlet.java file:
Học viện thực hiện: Trần Minh Hùng – CH1101087
24
BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI
Trong src/guestbook/ tạo một file SignGuestbookServlet.java có nội dung
sau:
package guestbook;
import java.io.IOException;
import java.util.Date;
import java.util.logging.Logger;
import javax.jdo.PersistenceManager;
import javax.servlet.http.*;
import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;
import guestbook.Greeting;
import guestbook.PMF;
public class SignGuestbookServlet extends HttpServlet {
private static final Logger log =
Logger.getLogger(SignGuestbookServlet.class.getName());
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
UserService userService = UserServiceFactory.getUserService();

User user = userService.getCurrentUser();
String content = req.getParameter("content");
Date date = new Date();
Greeting greeting = new Greeting(user, content, date);
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
pm.makePersistent(greeting);
} finally {
pm.close();
}
resp.sendRedirect("/guestbook.jsp");
}
}
Học viện thực hiện: Trần Minh Hùng – CH1101087
25

×