1
LỜI NHẬN XÉT
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
……………………………………………………………………………….
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ì
đó.
4
CHƯƠNG II. CƠ SỞ LÝ THUYẾT
PHẦN I. ĐIỆN TOÁN ĐÁM MÂY
I. Đặt vấn đề
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
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ý.
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.
6
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 :
Tuy nhiên, mô hình điện toán này vẫn còn mắc phải một số nhược điểm sau :
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?
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 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 :
o 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.
o 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”.
8
3)
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 đó. 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.
4)
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).
5)
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ọ.
2. Cách thức hoạt động của Điện toán đám mây :
Để hiểu cách thức hoạt động của “đám mây”, tưởng tượng rằng “đám mây” bao gồm 2
Các công nghệ hỗ trợ hoàn toàn vô hình đối với người dùng
Truy cập qua trình duyệt Web hoặc API của dịch vụ web
Các tài nguyên được phân bổ riêng hoặc dùng chung
Là các dịch vụ được đo đếm
o Các giải pháp dịch vụ điện toán đám mây được phân thành ba mô hình : SaaS,
PaaS, IaaS
10
Dịch vụ hạ tầng IaaS (Infrastructure as a Service)
Dịch vụ IaaS cung cấp dịch vụ cơ bản bao gồm năng lực tính toán, không gian lưu trữ,
kết nối mạng tới khách hàng. Khách hàng có thể sử dụng tài nguyên hạ tầng này để
đáp ứng nhu cầu tính toán hoặc cài đặt ứng dụng riêng cho người sử dụng. Với dịch vụ
này khách hàng làm chủ hệ điều hành, lưu trữ và các ứng dụng do khách hàng cài đặt.
Khách hàng điển hình của dịch vụ IaaS có thể là mọi đối tượng cần tới một máy tính
và tự cài đặt ứng dụng của mình.
Dịch vụ nền tảng PaaS (Platform as a Service)
Dịch vụ PaaS cung cấp nền tảng điện toán cho phép khách hàng phát triển các phần
mềm, phục vụ nhu cầu tính toán hoặc xây dựng thành dịch vụ trên nền tảng Cloud dó.
Dịch vụ PaaS có thể được cung cấp dưới dạng các ứng dụng lớp giữa, các ứng dụng
chủ (application server) cùng các công cụ lập trình với ngôn ngữ lập trình nhất định để
xây dựng ứng dụng. Dịch vụ PaaS cũng có thể được xây dựng riêng và cung cấp cho
khách hàng thông qua một API riêng. Khách hàng xây dựng ứng dụng và tương tác với
hạ tầng Cloud Computing thông qua API đó. Ở mức PaaS, khách hàng không quản lý
nền tảng Cloud hay các tài nguyên lớp như hệ điều hành, lưu giữ ở lớp dưới. Khách
hàng điển hình của dịch vụ PaaS chính là các nhà phát triển ứng dụng (ISV).
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
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.
13
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
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.
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.
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ọ.
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.
15
CHƯƠNG III. 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.
2. 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 2 : Truy cập vào địa chỉ
Và tải Google Plugin for Eclipse 20
Bước 3 : Mở chương trình Eclipse và cài đặt Google Plugin for Eclipse vào eclipse
21 22
23
3. Tạo Project :
24 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.
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ục,
lib
Compiled classes
JARs for Libraries