Tải bản đầy đủ (.ppt) (33 trang)

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

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 (1.15 MB, 33 trang )

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
------o0o-----BÁO CÁO ĐỀ TÀI

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 :
Google App Engine của Google
Window Azure của Microsoft
Sun Cloud của Sun
Giáo viên hướng dẫn :
Đặng Nhân Cách
Sinh viên thực hiện : Lớp CN07B
Lê Văn Thao
Phan Vinh
Hoàng Thiên Châu
Nguyễn Hoài Hiền
Nguyễn Văn Đô
Dương Ngọc Định


NỘI DUNG
GiỚI THIỆU

CƠ SỞ LÍ THUYẾT

NỘI DUNG

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

DEMO CHƯƠNG TRÌNH


KiỂM TRA –ĐÁNH GIÁ

TÀI LiỆU THAM KHẢO


GiỚI THIỆU
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. 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à 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ì đó.


CƠ SỞ LÝ THUYẾT
GỒM 2 PHẦN:

ĐIỆN TOÁN ĐÁM MÂY

GOOGLE APP ENGINE


CƠ SỞ LÝ THUYẾT


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

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 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)


CƠ SỞ LÝ THUYẾT
2. So sánh mô hình Cloud Computing và 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 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 chủ:
► 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ụ 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 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 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 dịch vụ đó.


CƠ SỞ LÝ THUYẾT
3.Ưu điểm và nhượt điểm:
a.

Ưu điểm:




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ó).
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ý






CƠ SỞ LÝ THUYẾT
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.
► 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, 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)
► 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.
b. Nhược điểm :
► 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 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?
► 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 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?



CƠ SỞ LÝ THUYẾT








Mấ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 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á 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.
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 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ụ 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 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.
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 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 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ụ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ấp.


CƠ SỞ LÝ THUYẾT
4.Cấu trúc phân lớp:


CƠ SỞ LÝ THUYẾT







Client (Lớp Khách hàng): 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à 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) và các trình duyệt web (phần mềm)….
Application (Lớp Ứng dụng): 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, 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ễ 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 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 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
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”.
Platform (Lớp Nền tảng): 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à đ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 đó


CƠ 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 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): 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 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, 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)
► Server (Lớp Server - Máy chủ): 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 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 các người dùng và các nhu cầu
ngày càng cao của họ


CƠ SỞ LÝ THUYẾT
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 đá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 đ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: /> Windows Azure của Microsoft :
/> Nền tảng điện toán đám mây ra đời đầu tiên: Amazone Webservice của
Amazon.com
 Sun Cloud của Sun /> Facebook


CƠ SỞ LÝ THUYẾT
PHẦN II: GOOGLE APP ENGINE
1.Giới thiệu:









Google App Engine (gọi tắt là AppEngine, 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 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 Google.
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, 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ỉ 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ạn
Bạn 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 bạn 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 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 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
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



CƠ SỞ LÝ THUYẾT
2.Các thành phần chính của Appengine:

a.Python Runtime
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ề 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 sử dụng App Engine.
► 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 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, CherryPy, Pylons, web.py với một
ít thay đổi nhất định.


b.Java Runtime Environment


Bạn có thể phát triển ứng dụng của bạn cho Java Runtime
Environment 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 của bạn tương tác với môi trường bằng
cách sử dụng the Java Servlet standard, và có thể sử dụng các
công nghệ ứng dụng web phổ biến như JavaServer Pages (JSP)


CƠ SỞ LÝ THUYẾT






Java Runtime Environment 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.
Đố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) và Java Persistence API (JPA) interfaces.
Ứng dụng của bạn có thể sử dụng các API JavaMail để 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 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. Xem tài liệu cho the datastore,
memcache, URL fetch, mail, images and 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 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ử 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.

c.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 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.


CƠ SỞ LÝ THUYẾT

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 login vào ứng dụng của mình bằng tài khoản Google của họ.

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. Những dịch vụ có thể liệt kê ở đây là: URL Fetch, Mail,
Memcache, Image Manipulation

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ụ 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
bạn đặt hết vào tay người khác, dù cho đó là Google


HƯỚNG DẪN CÀI ĐẶT
I.Yêu cầu:
► Eclipese .
► Google plugin cho Eclipese.
► AppEngine-java-SDK-1.3.8.zip.
► Có

tài khoản ứng dụng trên goole app engine


II.Các bước cài đặt:

1.Đăng kí tài khoản:
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 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 email của Google. Open
và đăng nhập với thông tin tài
khoản gmail của bạn.


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


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


HƯỚNG DẪN CÀI ĐẶT
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
sẽ nhắn cho bạn một mã xác minh qua SMS.


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



HƯỚNG DẪN CÀI ĐẶT
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


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


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


×