33
TR TR ƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCM ƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCM KHOA CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ THÔNG TIN ------o0o------ ------o0o------ BÁO CÁO ĐỀ TÀI BÁO CÁO ĐỀ TÀI NGHIÊN CỨU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY. VIẾT MỘT NGHIÊN CỨU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY. VIẾT MỘT ỨNG DỤNG DEMO DÙNG MỘT TRONG CÁC GÓI THƯ VIỆN SAU : ỨNG DỤNG DEMO DÙNG MỘT TRONG CÁC GÓI THƯ VIỆN SAU : Google App Engine của Google Google App Engine của Google Window Azure của Microsoft Window Azure của Microsoft Sun Cloud của Sun Sun Cloud của Sun Giáo viên hướng dẫn : Giáo viên hướng dẫn : Đặng Nhân Cách Đặng Nhân Cách Sinh viên thực hiện Sinh viên thực hiện : Lớp CN07B : Lớp CN07B Văn Thao Văn Thao Phan Vinh Phan Vinh Hoàng Thiên Châu Hoàng Thiên Châu Nguyễn Hoài Hiền Nguyễn Hoài Hiền Nguyễn Văn Đô Nguyễn Văn Đô Dương Ngọc Định Dương Ngọc Định

Baocao ltm

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Baocao ltm

TRTRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCMƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCM

KHOA CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ THÔNG TIN

------o0o------------o0o------

BÁO CÁO ĐỀ TÀI BÁO CÁO ĐỀ TÀI NGHIÊN CỨU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY. VIẾT MỘT NGHIÊN CỨU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY. VIẾT MỘT

ỨNG DỤNG DEMO DÙNG MỘT TRONG CÁC GÓI THƯ VIỆN SAU :ỨNG DỤNG DEMO DÙNG MỘT TRONG CÁC GÓI THƯ VIỆN SAU : Google App Engine của GoogleGoogle App Engine của Google

Window Azure của MicrosoftWindow Azure của Microsoft

Sun Cloud của SunSun Cloud của Sun

Giáo viên hướng dẫn :Giáo viên hướng dẫn :

Đặng Nhân CáchĐặng Nhân Cách

Sinh viên thực hiệnSinh viên thực hiện : Lớp CN07B : Lớp CN07B

Lê Văn ThaoLê Văn Thao

Phan VinhPhan Vinh

Hoàng Thiên ChâuHoàng Thiên Châu

Nguyễn Hoài HiềnNguyễn Hoài Hiền

Nguyễn Văn ĐôNguyễn Văn Đô

Dương Ngọc Định Dương Ngọc Định

Page 2: Baocao ltm

NỘI DUNGNỘI DUNG

NỘI DUNG

GiỚI THIỆU

CƠ SỞ LÍ THUYẾT

HƯỚNG DẪN CÀI ĐẶT

DEMO CHƯƠNG TRÌNH

KiỂM TRA –ĐÁNH GIÁ

TÀI LiỆU THAM KHẢO

Page 3: Baocao ltm

GiỚI THIỆUGiỚI THIỆUTóm tắt hệ thống :Tóm tắt hệ thống :► Để giúp mọi người hình dung mô hình điện toán đám mây như thế nào. Để giúp mọi người hình dung mô hình điện toán đám mây như thế nào.

Nhóm chúng tôi viết ứng dụng nhỏ dựa trên các gói thư viện có sẵn của Nhóm chúng tôi viết ứng dụng nhỏ dựa trên các gói thư viện có sẵn của google.Về hình thức các bạn có thể hình dung ứng dụng này giống như là google.Về hình thức các bạn có thể hình dung ứng dụng này giống như là các blog, facebook, diễn đàn .. qua đó thành lập các nhóm học tập để các các blog, facebook, diễn đàn .. qua đó thành lập các nhóm học tập để các bạn có thể trao đổi hay bình luân về một vấn đề gì đó.bạn có thể trao đổi hay bình luân về một vấn đề gì đó.

Page 4: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾT

GỒM 2 PHẦN:GỒM 2 PHẦN:

ĐIỆN TOÁN ĐÁM MÂY GOOGLE APP ĐIỆN TOÁN ĐÁM MÂY GOOGLE APP ENGINEENGINE

Page 5: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾT

►PHẦN I: ĐIỆN TOÁN ĐÁM MÂYPHẦN I: ĐIỆN TOÁN ĐÁM MÂY

1. Khái niệm :1. Khái niệm : Điện toán đám mây là môi trường tính toán dựa trên internet mà ở đó tất Đ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 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)bị khác theo nhu cầu (tương tự như mạng điện)

Page 6: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾT

2. So sánh mô hình Cloud Computing và 2. So sánh mô hình Cloud Computing và Client/Server:Client/Server:

► Cloud client trong cloud computing và client trong mô hình client/server Cloud client trong cloud computing và client trong mô hình client/server giống nhau ở vai trò là hiển thị dữ liệu và tiếp nhận các thao tác của người giống nhau ở vai trò là hiển thị dữ liệu và tiếp nhận các thao tác của người dùng, mọi tính toán nghiệp vụ đều được thực hiện ở máy chủ. Tuy nhiên, dùng, mọi tính toán nghiệp vụ đều được thực hiện ở máy chủ. Tuy nhiên, điểm khác biệt lớn nhất giữa 2 mô hình này là ở việc tính toán trên máy điểm khác biệt lớn nhất giữa 2 mô hình này là ở việc tính toán trên máy chủ:chủ:

► Server trong mô hình client/ server thường mang ý nghĩa là 1 hoặc 1 cụm Server trong mô hình client/ server thường mang ý nghĩa là 1 hoặc 1 cụm máy chủ trung tâm chỉ làm nhiệm vụ thực hiện tính toán cho 1 số client cụ máy chủ trung tâm chỉ làm nhiệm vụ thực hiện tính toán cho 1 số client cụ thể (trong 1 công ty hoặc 1 tổ chức nào đó); trong khi server trong Cloud thể (trong 1 công ty hoặc 1 tổ chức nào đó); trong khi server trong Cloud computing lại mang 1 ý nghĩa rộng hơn nhiều. Server trong điện toán đám computing lại mang 1 ý nghĩa rộng hơn nhiều. Server trong điện toán đám mây sẽ làm nhiệm vụ tính toán cho bất kì client nào với bất kì công việc mây sẽ làm nhiệm vụ tính toán cho bất kì client nào với bất kì công việc nào (mà nó hỗ trợ). Công việc tính toán lúc này không phải thực hiện theo nào (mà nó hỗ trợ). Công việc tính toán lúc này không phải thực hiện theo nghĩa vụ mà là theo dịch vụ. Với điện toán đám mây, mọi thứ sẽ được nghĩa vụ mà là theo dịch vụ. Với điện toán đám mây, mọi thứ sẽ được cung cấp dưới dạng dịch vụ, và người dùng sẽ chỉ phải trả phí sử dụng các cung cấp dưới dạng dịch vụ, và người dùng sẽ chỉ phải trả phí sử dụng các dịch vụ đó.dịch vụ đó.

Page 7: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾT3.Ưu điểm và nhượt điểm:3.Ưu điểm và nhượt điểm:a.a. Ưu điểm:Ưu điểm:► Tính linh độngTính linh động : Người dùng có thể thoải mái lựa chọn các dịch vụ phù : 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 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 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ỏ 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ó).mỗi khi sử dụng 1 phần nào đó của nó).

► Giảm bớt phí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 : 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 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ư 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 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.đa.

► Tạo nên sự độc lậpTạ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ị : 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 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 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ýmà không cần phải quan tâm đến giới hạn phần cứng cũng như địa lý

Page 8: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾT► Tăng cường độ tin cậyTăng cường độ tin cậy : Dữ liệu trong mô hình điện toán đám mây được : 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. 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ố Đ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. hoặc thảm họa xảy ra.

► Bảo mật 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 : 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, 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 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, bạn cũng sẻ 6 máy chủ khác nhau → trong trường hợp hacker tấn công, bạn 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)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 Bảo trì dễ dàng : Mọi phần mềm đều nằm trên server, lúc này, người : 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 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 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.của mình.

b. b. Nhược điểm :Nhược điểm :► Tính riêng tưTính riêng tư: Các thông tin người dùng và dữ liệu được chứa trên điện : Các thông tin người dùng và dữ liệu được chứa trên điện

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

► Tính sẵn dùng:Tính sẵn dùng: Liệu các dịch vụ đám mây có bị “treo” bất ngờ, khiến cho Liệu các dịch vụ đám mây có bị “treo” bất ngờ, khiến cho người dùng không thể truy cập các dịch vụ và dữ liệu của mình trong người dùng không thể truy cập các dịch vụ và dữ liệu của mình trong những khoảng thời gian nào đó khiến ảnh hưởng đến công việc?những khoảng thời gian nào đó khiến ảnh hưởng đến công việc?

Page 9: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾT► Mất dữ liệuMất dữ liệu : Một vài dịch vụ lưu trữ dữ liệu trực tuyến trên đám mây bất : Một vài dịch vụ lưu trữ dữ liệu trực tuyến trên đám mây bất

ngờ ngừng hoạt động hoặc không tiếp tục cung cấp dịch vụ, khiến cho ngờ ngừng hoạt động hoặc không tiếp tục cung cấp dịch vụ, khiến cho người dùng phải sao lưu dữ liệu của họ từ “đám mây” về máy tính cá người dùng phải sao lưu dữ liệu của họ từ “đám mây” về máy tính cá nhân. Điều này sẽ mất nhiều thời gian. Thậm chí một vài trường hợp, vì nhân. Điều này sẽ mất nhiều thời gian. Thậm chí một vài trường hợp, vì một lý do nào đó, dữ liệu người dùng bị mất và không thể phục hồi được.một lý do nào đó, dữ liệu người dùng bị mất và không thể phục hồi được.

► Tính di động của dữ liệu và quyền sở hữu Tính di động của dữ liệu và quyền sở hữu : Một câu hỏi đặt ra, liệu người : Một câu hỏi đặt ra, liệu người dùng có thể chia sẻ dữ liệu từ dịch vụ đám mây này sang dịch vụ của đám dùng có thể chia sẻ dữ liệu từ dịch vụ đám mây này sang dịch vụ của đám mây khác? Hoặc trong trường hợp không muốn tiếp tục sử dụng dịch vụ mây khác? Hoặc trong trường hợp không muốn tiếp tục sử dụng dịch vụ cung cáp từ đám mây, liệu người dùng có thể sao lưu toàn bộ dữ liệu của cung cáp từ đám mây, liệu người dùng có thể sao lưu toàn bộ dữ liệu của họ từ đám mây? Và làm cách nào để người dùng có thể chắc chắn rằng họ từ đám mây? Và làm cách nào để người dùng có thể chắc chắn rằng các dịch vụ đám mây sẽ không hủy toàn bộ dữ liệu của họ trong trường các dịch vụ đám mây sẽ không hủy toàn bộ dữ liệu của họ trong trường hợp dịch vụ ngừng hoạt động.hợp dịch vụ ngừng hoạt động.

► Khả năng bảo mật Khả năng bảo mật : Vấn đề tập trung dữ liệu trên các “đám mây” là cách : Vấn đề tập trung dữ liệu trên các “đám mây” là cách thức hiệu quả để tăng cường bảo mật, nhưng mặt khác cũng lại chính là thức hiệu quả để tăng cường bảo mật, nhưng mặt khác cũng lại chính là mối lo của người sử dụng dịch vụ của điện toán đám mây. Bởi lẽ một khi mối lo của người sử dụng dịch vụ của điện toán đám mây. Bởi lẽ một khi các đám mây bị tấn công hoặc đột nhập, toàn bộ dữ liệu sẽ bị chiếm dụngcác đám mây bị tấn công hoặc đột nhập, toàn bộ dữ liệu sẽ bị chiếm dụng

► Các quy định pháp luật cho các dịch vụ, giữa khách hàng và nhà cung Các quy định pháp luật cho các dịch vụ, giữa khách hàng và nhà cung

cấpcấp..

Page 10: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾT

4.Cấu trúc phân lớp:4.Cấu trúc phân lớp:

Page 11: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾT► Client (Lớp Khách hàngClient (Lớp Khách hàng):): Lớp Client của điện toán đám mây bao gồm Lớp Client của điện toán đám mây bao gồm

phần cứng và phần mềm, để dựa vào đó, khách hàng có thể truy cập và phần cứng và phần mềm, để dựa vào đó, khách hàng có thể truy cập và sử dụng các ứng dụng/dịch vụ được cung cấp từ điện toán đám mây. sử dụng các ứng dụng/dịch vụ được cung cấp từ điện toán đám mây. Chẳng hạn máy tính và đường dây kết nối Internet (thiết bị phần cứng) Chẳng hạn máy tính và đường dây kết nối Internet (thiết bị phần cứng) và các trình duyệt web (phần mềm)….và các trình duyệt web (phần mềm)….

► Application (Lớp Ứng dụng)Application (Lớp Ứng dụng): : Lớp ứng dụng của điện toán đám mây làm Lớp ứng dụng của điện toán đám mây làm nhiệm vụ phân phối phần mềm như một dịch vụ thông quan Internet, nhiệm vụ phân phối phần mềm như một dịch vụ thông quan Internet, người dùng không cần phải cài đặt và chạy các ứng dụng đó trên máy người dùng không cần phải cài đặt và chạy các ứng dụng đó trên máy tính của mình, các ứng dụng dễ dàng được chỉnh sữa và người dùng dễ tính của mình, các ứng dụng dễ dàng được chỉnh sữa và người dùng dễ dàng nhận được sự hỗ trợ.dàng nhận được sự hỗ trợ.Các đặc trưng chính của lớp ứng dụng bao gồm :Các đặc trưng chính của lớp ứng dụng bao gồm :

► Các hoạt động được quản lý tại trung tâm của đám mây, chứ Các hoạt động được quản lý tại trung tâm của đám mây, chứ không nằm ở phía khách hàng (lớp Client), cho phép khách hàng không nằm ở phía khách hàng (lớp Client), cho phép khách hàng truy cập các ứng dụng từ xa thông qua Website.truy cập các ứng dụng từ xa thông qua Website.

► Người dùng không còn cần thực hiện các tính năng như cập nhật Người dùng không còn cần thực hiện các tính năng như cập nhật phiên bản, bản vá lỗi, download phiên bản mới… bởi chúng sẽ phiên bản, bản vá lỗi, download phiên bản mới… bởi chúng sẽ được thực hiện từ các “đám mây”.được thực hiện từ các “đám mây”.

► Platform (Lớp Nền tảng):Platform (Lớp Nền tảng): Cung cấp nền tảng cho điện toán và các giải Cung cấp nền tảng cho điện toán và các giải pháp của dịch vụ, chi phối đến cấu trúc hạ tầng của “đám mây” và là pháp của dịch vụ, chi phối đến cấu trúc hạ tầng của “đám mây” và là điểm tựa cho lớp ứng dụng, cho phép các ứng dụng hoạt động trên nền điểm tựa cho lớp ứng dụng, cho phép các ứng dụng hoạt động trên nền tảng đótảng đó

Page 12: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾT Nó giảm nhẹ sự tốn kém khi triển khai các ứng dụng khi người dùng không Nó giảm nhẹ sự tốn kém khi triển khai các ứng dụng khi người dùng không

phải trang bị cơ sở hạ tầng (phần cứng và phần mềm) của riêng mình.phải trang bị cơ sở hạ tầng (phần cứng và phần mềm) của riêng mình.► Infrastructure (Lớp Cơ sở hạ tầng):Infrastructure (Lớp Cơ sở hạ tầng): Cung cấp hạ tầng máy tính, tiêu biểu là Cung cấp hạ tầng máy tính, tiêu biểu là

môi trường nền ảo hóa. Thay vì khách hàng phải bỏ tiền ra mua các môi trường nền ảo hóa. Thay vì khách hàng phải bỏ tiền ra mua các server, phần mềm, trung tâm dữ liệu hoặc thiết bị kết nối… giờ đây, họ server, phần mềm, trung tâm dữ liệu hoặc thiết bị kết nối… giờ đây, họ vẫn có thể có đầy đủ tài nguyên để sử dụng mà chi phí được giảm thiểu, vẫn có thể có đầy đủ tài nguyên để sử dụng mà chi phí được giảm thiểu, hoặc thậm chí là miễn phí. Đây là một bước tiến hóa của mô hình máy chủ hoặc thậm chí là miễn phí. Đây là một bước tiến hóa của mô hình máy chủ ảo (Virtual Private Server)ảo (Virtual Private Server)

► Server (Lớp Server - Máy chủ):Server (Lớp Server - Máy chủ): Bao gồm các sản phẩm phần cứng và phần Bao gồm các sản phẩm phần cứng và phần mềm máy tính, được thiết kế và xây dựng đặc biệt để cung cấp các dịch mềm máy tính, được thiết kế và xây dựng đặc biệt để cung cấp các dịch vụ của đám mây. Các server phải được xây dựng và có cấu hình đủ mạnh vụ của đám mây. Các server phải được xây dựng và có cấu hình đủ mạnh (thậm chí là rất may) để đám ứng nhu cầu sử dụng của số lượng động đảo (thậm chí là rất may) để đám ứng nhu cầu sử dụng của số lượng động đảo các người dùng và các nhu cầu ngày càng cao của họcác người dùng và các nhu cầu ngày càng cao của họ

Page 13: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾT5. Các công ty cung cấp:5. Các công ty cung cấp:► Các ông lớn đã bắt đầu rục rịch trong cuộc chạy đua đến với điện toán Các ông lớn đã bắt đầu rục rịch trong cuộc chạy đua đến với điện toán

đám mây. Những Google, Microsoft, Amazone, Sun đều đã và đang phát đám mây. Những Google, Microsoft, Amazone, Sun đều đã và đang phát triển những nền tảng điện toán đám mây của riêng mình. Các nền tảng triển những nền tảng điện toán đám mây của riêng mình. Các nền tảng điện toán đám mây lớn có thể kể đến bây giờ bao gồm :điện toán đám mây lớn có thể kể đến bây giờ bao gồm :

Google App Engine của Google: http://code.google.com/appengine/Google App Engine của Google: http://code.google.com/appengine/ Windows Azure của Microsoft : Windows Azure của Microsoft :

http://www.microsoft.com/windowsazure/windowsazure/http://www.microsoft.com/windowsazure/windowsazure/ Nền tảng điện toán đám mây ra đời đầu tiên: Amazone Webservice của Nền tảng điện toán đám mây ra đời đầu tiên: Amazone Webservice của

Amazon.comAmazon.com Sun Cloud của Sun http://www.sun.com/solutions/cloudcomputing/Sun Cloud của Sun http://www.sun.com/solutions/cloudcomputing/ FacebookFacebook

Page 14: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾTPHẦN II: GOOGLE APP ENGINEPHẦN II: GOOGLE APP ENGINE1.Giới thiệu:1.Giới thiệu:► Google App Engine (gọi tắt là Google App Engine (gọi tắt là AppEngineAppEngine, một số trường hợp được viết tắt , một số trường hợp được viết tắt

là GAE ) là giải pháp cho vấn đề điện toán đám mây. Ở đó, Google cung là GAE ) là giải pháp cho vấn đề điện toán đám mây. Ở đó, Google cung cấp sẵn một hệ thống máy chủ điện toán đám mây, và người lập trình sẽ cấp sẵn một hệ thống máy chủ điện toán đám mây, và người lập trình sẽ viết ứng dụng của mình lên đó. Ứng dụng này sẽ chạy trên đám mây của viết ứng dụng của mình lên đó. Ứng dụng này sẽ chạy trên đám mây của Google.Google.

► Google App Engine cho phép bạn chạy các ứng dụng web của bạn trên cơ Google App Engine cho phép bạn chạy các ứng dụng web của bạn trên cơ sở hạ tầng của Google. App Engine ứng dụng được dễ dàng để xây dựng, sở hạ tầng của Google. App Engine ứng dụng được dễ dàng để xây dựng, dễ bảo trì, và dễ dàng để có quy mô như giao thông của bạn và nhu cầu dễ bảo trì, và dễ dàng để có quy mô như giao thông của bạn và nhu cầu lưu trữ dữ liệu lớn. Với App Engine, không có máy chủ để duy trì: Bạn chỉ lưu trữ dữ liệu lớn. Với App Engine, không có máy chủ để duy trì: Bạn chỉ cần tải lên các ứng dụng của bạn, và nó sẵn sàng để phục vụ người dùng cần tải lên các ứng dụng của bạn, và nó sẵn sàng để phục vụ người dùng của bạncủa bạn

► Bạn có thể sử dụng tên miền riêng của mình (chẳng hạn như Bạn có thể sử dụng tên miền riêng của mình (chẳng hạn như http://www.example.com/http://www.example.com/ ) thông qua google apps. Hoặc bạn có thể dùng ) thông qua google apps. Hoặc bạn có thể dùng sub-domain miễn phí của appspot.com. GAE cho phép được host miễn phí 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 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 mỗi ngày hay tương đương 5 triệu pageview hàng tháng,Vượt qua mức này bạn sẽ phải trả phí. Dùng GAE, chúng ta khỏi phải thiết kế database, này bạn 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 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.các class và GAE tự động lo phần làm việc với database.

► Hiện AppEngine hỗ trợ 2 loại ngôn ngữ là: Python và Java. Một số ngôn 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ừ 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 JavaPHP sang Java

Page 15: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾT

2.Các thành phần chính của Appengine:2.Các thành phần chính của Appengine:a.Python Runtimea.Python Runtime► AppEngine hỗ trợ Python Runtime phiên bản 2.5.2. Hầu hết các thư viện AppEngine hỗ trợ Python Runtime phiên bản 2.5.2. Hầu hết các thư viện

của Python Standard Library đều được hỗ trợ. Tuy nhiên do vấn đề về của Python Standard Library đều được hỗ trợ. Tuy nhiên do vấn đề về security nên các extensions viết bằng C sẽ không được hỗ trợ. Điều này có security nên các extensions viết bằng C sẽ không được hỗ trợ. Điều này có nghĩa rằng bạn không thể nhúng C extensions vào ứng dụng của bạn khi nghĩa rằng bạn không thể nhúng C extensions vào ứng dụng của bạn khi sử dụng App Engine.sử dụng App Engine.

► Python Runtime cung cấp APIs cho datastore, Google Accounts, App Python Runtime cung cấp APIs cho datastore, Google Accounts, App Engine services. Để tiện lợi cho việc phát triển web AppEngine cũng cung Engine services. Để tiện lợi cho việc phát triển web AppEngine cũng cung cấp 1 web framework đơn giản là webapp. Do viết bằng ngôn ngữ Python cấp 1 web framework đơn giản là webapp. Do viết bằng ngôn ngữ Python nên AppEngine hỗ trợ hầu hết các Python framework như Django, nên AppEngine hỗ trợ hầu hết các Python framework như Django, CherryPy, Pylons, web.py với một ít thay đổi nhất định.CherryPy, Pylons, web.py với một ít thay đổi nhất định.

b.Java Runtime Environmentb.Java Runtime Environment► Bạn có thể phát triển ứng dụng của bạn cho Bạn có thể phát triển ứng dụng của bạn cho Java Runtime EnvironmentJava Runtime Environment sử sử

dụng phổ biến công cụ phát triển web Java và các tiêu chuẩn API. Ứng dụng phổ biến công cụ phát triển web Java và các tiêu chuẩn API. Ứng dụng của bạn tương tác với môi trường bằng cách sử dụng dụng của bạn tương tác với môi trường bằng cách sử dụng the Java Servlet standardthe Java Servlet standard, và có thể sử dụng các công nghệ ứng dụng web , và có thể sử dụng các công nghệ ứng dụng web phổ biến như phổ biến như JavaServer PagesJavaServer Pages (JSP) (JSP)

Page 16: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾT► Java Runtime EnvironmentJava Runtime Environment sử dụng Java 6. Các App Engine Java SDK hỗ sử dụng Java 6. Các App Engine Java SDK hỗ

trợ phát triển các ứng dụng bằng cách sử dụng Java 5 hoặc 6.trợ phát triển các ứng dụng bằng cách sử dụng Java 5 hoặc 6.► Đối với các kho dữ liệu App Engine, Java SDK bao gồm việc triển khai của Đối với các kho dữ liệu App Engine, Java SDK bao gồm việc triển khai của

Java Data Objects (JDO)Java Data Objects (JDO) và và Java Persistence API (JPA) Java Persistence API (JPA) interfaces. Ứng dụng interfaces. Ứng dụng của bạn có thể sử dụng của bạn có thể sử dụng các các API JavaMailAPI JavaMail để gửi tin nhắn email với dịch vụ để gửi tin nhắn email với dịch vụ App Engine Mail. Các java.net HTTP API truy cập vào App Engine lấy URL App Engine Mail. Các java.net HTTP API truy cập vào App Engine lấy URL dịch vụ. App Engine cũng bao gồm các API cấp thấp cho các dịch vụ của dịch vụ. App Engine cũng bao gồm các API cấp thấp cho các dịch vụ của mình để thực hiện thêm bộ điều hợp, hoặc sử dụng trực tiếp từ ứng dụng. mình để thực hiện thêm bộ điều hợp, hoặc sử dụng trực tiếp từ ứng dụng. Xem tài liệu cho the datastore, memcache, URL fetch, mail, images and Xem tài liệu cho the datastore, memcache, URL fetch, mail, images and Google Accounts APIs.Google Accounts APIs.

► Thông thường, các nhà phát triển Java sử dụng các ngôn ngữ lập trình Java Thông thường, các nhà phát triển Java sử dụng các ngôn ngữ lập trình Java và các API để thực hiện các ứng dụng web cho JVM. Với việc sử dụng các và các API để thực hiện các ứng dụng web cho JVM. Với việc sử dụng các trình biên dịch tương thích với JVM, người phiên dịch, bạn cũng có thể sử trình biên dịch tương thích với JVM, người phiên dịch, bạn cũng có thể sử dụng các ngôn ngữ khác để phát triển các ứng dụng web, chẳng hạn như dụng các ngôn ngữ khác để phát triển các ứng dụng web, chẳng hạn như JavaScript, Ruby, hoặc Scala.JavaScript, Ruby, hoặc Scala.

c.Datastorec.Datastore► Datastore là cơ chế để thao tác với dữ liệu trên hệ thống dữ liệu phân tán Datastore là cơ chế để thao tác với dữ liệu trên hệ thống dữ liệu phân tán

của Google. APIs của Datastore sẽ cung cấp cho bạn Interface để có thể của Google. APIs của Datastore sẽ cung cấp cho bạn Interface để có thể thao tác với các dữ liệu phía dưới.thao tác với các dữ liệu phía dưới.

Page 17: Baocao ltm

CƠ SỞ LÝ THUYẾTCƠ SỞ LÝ THUYẾTd.Google Accounts:d.Google Accounts:► AppEngine liên kết mật thiết với tài khoản Google. Bạn có thể cho user AppEngine liên kết mật thiết với tài khoản Google. Bạn có thể cho user

login vào ứng dụng của mình bằng tài khoản Google của họ.login vào ứng dụng của mình bằng tài khoản Google của họ.

e.App Engine Services:e.App Engine Services:► Cung cấp nhiều dịch vụ để bạn có thể sử dụng cho ứng dụng của mình. Cung cấp nhiều dịch vụ để bạn có thể sử dụng cho ứng dụng của mình.

Những dịch vụ có thể liệt kê ở đây là: URL Fetch, Mail, Memcache, Image Những dịch vụ có thể liệt kê ở đây là: URL Fetch, Mail, Memcache, Image ManipulationManipulation

3.Hạn chế:3.Hạn chế:► Tuy nhiên, mặt trái của việc xây dựng ứng dụng trên GAE là bạn sẽ phụ Tuy nhiên, mặt trái của việc xây dựng ứng dụng trên GAE là bạn 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 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 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ư 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 bạn đặt hết vào tay người khác, dù cũng rất e ngại khi tài sản của công ty bạn đặt hết vào tay người khác, dù cho đó là Googlecho đó là Google

Page 18: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶTI.Yêu cầu:I.Yêu cầu:

► Eclipese .Eclipese .► Google plugin cho Eclipese.Google plugin cho Eclipese.► AppEngine-java-SDK-1.3.8.zip.AppEngine-java-SDK-1.3.8.zip.

► Có tài khoản ứng dụng trên goole app engineCó tài khoản ứng dụng trên goole app engine

II.Các bước cài đặt:II.Các bước cài đặt:1.Đăng kí tài khoản:1.Đăng kí tài khoản:

Bước 1:Bước 1:► Để triển khai các ứng dụng của bạn với các đám mây của Google, bạn cần Để triển khai các ứng dụng của bạn với các đám mây của Google, bạn cần

mộmột tài khoản AppEngine. Làm được một tài khoản bạn cần một tài khoản t tài khoản AppEngine. Làm được một tài khoản bạn cần một tài khoản email của Google. Open http://appengine.google.com/ và đăng nhập với email của Google. Open http://appengine.google.com/ và đăng nhập với thông tin tài khoản gmail của bạn.thông tin tài khoản gmail của bạn.

Page 19: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶT

Page 20: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶTBước 2: chọn nút Create ApplicationBước 2: chọn nút Create Application

Page 21: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶTBước 3: Bạn cần phải xác minh tài khoản của bạn thông qua một số Bước 3: Bạn cần phải xác minh tài khoản của bạn 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 bạn, Google điện thoại hợp lệ.Sau khi cung cấp số điện thoại của bạn, Google sẽ nhắn cho bạn một mã xác minh qua SMS.sẽ nhắn cho bạn một mã xác minh qua SMS.

Page 22: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶTBước 4: Nhập mã xác nhận của googleBước 4: Nhập mã xác nhận của google

Page 23: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶTBước 5: Tiến hành tạo một ứng dụng.Chúng ta được phép tạo được 10 Bước 5: 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ứng dụng cho một tài khoản gmail

Page 24: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶTứng dụng được tạo ra như sauứng dụng được tạo ra như sau

Page 25: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶTĐây là giao diện chính của ứng dụng chúng ta tạo ra Đây là giao diện chính của ứng dụng chúng ta tạo ra

Page 26: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶT2. Cài đặt Eclipse và Google Plugin cho Eclipse2. Cài đặt Eclipse và Google Plugin cho Eclipse► Bước 1 : Cài đặt Eclipse vào máy tính của bạn đang dùng.Bước 1 : Cài đặt Eclipse vào máy tính của bạn đang dùng.

► Bước 2 : Truy cập vào địa chỉ Bước 2 : Truy cập vào địa chỉ http://code.google.com/appengine/http://code.google.com/appengine/ ► Bước 3 : Mở chương trình Eclipse và cài đặt Google Plugin for Eclipse vào Bước 3 : Mở chương trình Eclipse và cài đặt Google Plugin for Eclipse vào

eclipseeclipse

3.Tạo project:3.Tạo project:

Cấu trúc thư mục project :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à 2 thư Một thư mục với tên Guestbook được tạo để chứa dự án. Bên trong là 2 thư

mục, một thư mục mang tên /src để chứa mã nguồn java và một 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 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 Appwar đượ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:Tạo cây thưc mục như sau:

Page 27: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶT

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

Page 28: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶT4. Triển khai ứng dụng4. Triển khai ứng dụng► Để upload code và các file chương trình của bạn lên Google App Engine ta Để upload code và các file chương trình của bạn lên Google App Engine ta

dùng một tập lệnh có trong SKD có tên: appcfg.cmddùng một tập lệnh có trong SKD có tên: appcfg.cmd

* * Cần chuẩn bị :Cần chuẩn bị : + Đưa ID vào ứng dụng : + Đưa ID vào ứng dụng : Cần 1 ID application đã được đăng ký trên google để upload ứng dụng, theo như Cần 1 ID application đã được đăng ký trên google để upload ứng dụng, theo như

cách đăng ký phần trên, ta có được ID application là : le-thaocách đăng ký phần trên, ta có được ID application là : le-thao Ta vào thưc mục war/WEB-INF/appengine-web.xml mở file appengine-web.xml Ta vào thưc mục war/WEB-INF/appengine-web.xml mở file appengine-web.xml

lên, đặt ID application vào giữa thẻ <application> </application> rồi save lại lên, đặt ID application vào giữa thẻ <application> </application> rồi save lại như hình vẽ :như hình vẽ :

Page 29: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶT4. Triển khai ứng dụng4. Triển khai ứng dụng► Để upload code và các file chương trình của bạn lên Google App Engine ta Để upload code và các file chương trình của bạn lên Google App Engine ta

dùng một tập lệnh có trong SKD có tên: appcfg.cmddùng một tập lệnh có trong SKD có tên: appcfg.cmd

* * Bắt đầu Upload :Bắt đầu Upload : Giải nén appengine-java-sdk-1.3.8.zip ra ổ D ta được D:\appengine-Giải nén appengine-java-sdk-1.3.8.zip ra ổ D ta được D:\appengine-

java-sdk, mở cmd ta gõ:java-sdk, mở cmd ta gõ: D: // Chuyển về ổ DD: // Chuyển về ổ D

Page 30: Baocao ltm

HƯỚNG DẪN CÀI ĐẶTHƯỚNG DẪN CÀI ĐẶTGõ: D:\\appengine-java-sdk\bin\appcfg.cmd update D:\guestbook\war để Gõ: D:\\appengine-java-sdk\bin\appcfg.cmd update D:\guestbook\war để

upload như hình vẽupload như hình vẽ

► Điền mail và pass nếu chương trình hỏi, và upload thành công như hình Điền mail và pass nếu chương trình hỏi, và upload thành công như hình dưới: dưới:

Page 31: Baocao ltm

DEMO CHƯƠNG TRÌNHDEMO CHƯƠNG TRÌNH

Page 32: Baocao ltm

KIỂM TRA-ĐÁNH GIÁKIỂM TRA-ĐÁNH GIÁ

1. Đạt được :1. Đạt được :► Đã xây dựng được ứng dụngĐã xây dựng được ứng dụng demo demo dựa trên gói thư viện của google dựa trên gói thư viện của google..► ứng dụng nhỏ gọn ,dễ sử dụng.ứng dụng nhỏ gọn ,dễ sử dụng.

2. Chưa đạt được:2. Chưa đạt được:► Vì điện toán đám mây là một đề tài lớn, đã và đang được nhiều ông lớn Vì điện toán đám mây là một đề tài lớn, đã và đang được nhiều ông lớn

như google , intel ,microsoft…. nghiên cứu và phát triển cho nên trong thời như google , intel ,microsoft…. nghiên cứu và phát triển cho nên trong thời gian ngắn chúng em chỉ có thể đáp ứng được yêu cầu của thầy đề ra ,chứ gian ngắn chúng em chỉ có thể đáp ứng được yêu cầu của thầy đề ra ,chứ chưa có thể nào xây dựng một ứng dụng lớn cho công ty hay doanh chưa có thể nào xây dựng một ứng dụng lớn cho công ty hay doanh nghiêp.nghiêp.

3. Hướng phát triển:3. Hướng phát triển:► Điện toán đám mây là một đề tài khá hay và mới mẻ hy vọng rằng qua sự Điện toán đám mây là một đề tài khá hay và mới mẻ hy vọng rằng qua sự

hướng dẫn của thầy .Chúng em có thể tiếp tục phát triển lên làm đề tài tốt hướng dẫn của thầy .Chúng em có thể tiếp tục phát triển lên làm đề tài tốt nghiệp và ứng dụng thực tế hơn.nghiệp và ứng dụng thực tế hơn.

Page 33: Baocao ltm

TÀI LiỆU THAM KHẢOTÀI LiỆU THAM KHẢO

► http://code.google.com/intl/vi-VN/appengine/http://code.google.com/intl/vi-VN/appengine/► http://www.google.com.vn/http://www.google.com.vn/► http://congdongit.org/bai-viet-ve-cloud-computing/http://congdongit.org/bai-viet-ve-cloud-computing/► http://vi.wikipedia.org/wiki/Điện_toán_đám_mâyhttp://vi.wikipedia.org/wiki/Điện_toán_đám_mây► Các slide bài giảng của giảng viên Đặng Nhân CáchCác slide bài giảng của giảng viên Đặng Nhân Cách► http://www.vogella.de/articles/http://www.vogella.de/articles/

GoogleAppEngineJava/article.html GoogleAppEngineJava/article.html