Tải bản đầy đủ (.docx) (22 trang)

TÌM HIỂU VỀ ĐIỆN TOÁN ĐÁM MÂY VÀ GOOGLE APP ENGINE

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 (603.68 KB, 22 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÀI TIỂU LUẬN MÔN HỌC TÍNH TOÁN LƯỚI
ĐỀ TÀI: TÌM HIỂU VỀ ĐIỆN TOÁN ĐÁM
MÂY VÀ GOOGLE APP ENGINE
GVHD: PGS.TS Nguyễn Phi Khứ
HVTH: Nguyễn Thị Thanh Thảo – MHV: CH1101137
Tp Hồ Chí Minh, ngày 27 tháng 07 năm 2013
MỤC LỤC
LỜI NÓI ĐẦU
Điện toán đám mây ra đời và đang là xu hướng mới của ngày nay. Trong điện toán
đám mây, Các nguồn thông tin và tính toán khổng lồ sẽ nằm tại các máy chủ ảo (đám
mây) đượctruy cập thông qua Internet để kết nối với mọi người khi cần.
Thông qua đám mây các doanh nghiệp không cần phải mua các phần mềm, duy trì
các dịch vụ mà chỉ cần sử dụng các dịch vụ sẵn có trên Internet để phục vụ cho nhu cầu
công việc của mình.
Tìm hiểu về điện toán đám mây, cụ thể là công google App Engine là điểm trọng
tâm của bài tiểu luận môn học này.
Xin chân thành cảm ơn thầy Nguyễn Phi Khứ đã giúp em có nhìn mới và tổng
quan về môn học.
PHẦN 1: ĐIỆN TOÁN ĐÁM MÂY
Cloud Computing (CC) là mô hình diện toán cho phép truy cập qua mạng để lựa
chọn và sử dụng tài nguyên tính toán theo nhu cầu một cách thuận tiện và nhanh chóng,
đồng thời cho phép kết thúc sử dụng dịch vụ, giải phóng tài nguyên dễ dàng, giảm thiểu
các giao tiếp với nhà cung cấp.
1. Lịch sử hình thành
Thuật ngữ điện toán đám mây xuất hiện bắt nguồn từ ứng dụng điện toán
lưới (grid computing) trong thập niên 1980, tiếp theo là điện toán theo nhu cầu
(utility computing) và phần mềm dịch vụ (SaaS).
Điện toán lưới đặt trọng tâm vào việc di chuyển một tải công việc (workload) đến


địa điểm của các tài nguyên điện toán cần thiết để sử dụng. Một lưới là một nhóm máy
chủ mà trên đó nhiệm vụ lớn được chia thành những tác vụ nhỏ để chạy song song, được
xem là một máy chủ ảo.
Với điện toán đám mây, các tài nguyên điện toán như máy chủ có thể được định
hình động hoặc cắt nhỏ từ cơ sở hạ tầng phần cứng nền và trở nên sẵn sàng thực hiện
nhiệm vụ, hỗ trợ những môi trường không phải là điện toán lưới như Web ba lớp chạy
các ứng dụng truyền thống hay ứng dụng Web 2.0.
2. Khái niệm về điện toán đám mây
Điện toán đám mây (thuật ngữ tiếng Anh: Cloud computing, hay còn được biết
đến với tên gọi “Điện toán máy chủ ảo”) là mô hình máy tính dựa trên nền tảng phát triển
của internet, nơi được chia sẻ tài nguyên, phần mềm và thông tin cung cấp cho máy tình
cũng như các thiết bị khác theo yêu cầu qua Internet.
Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ chỉ mạng Internet (dựa vào cách được
bố trí của nó trong sơ đồ mạng máy tính) 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ó. Ở mô hình điện toán này, mọi khả năng liên quan đến công
nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ", cho phép người sử dụng truy
cập các dịch vụ công nghệ từ một nhà cung cấp nào đó "trong đám mây" mà không cần
phải có các kiến thức, kinh nghiệm về công nghệ đó, cũng như không cần quan tâm đến
các cơ sở hạ tầng phục vụ công nghệ đó.
3. Kiến trúc của điện toán đám mây
Đ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).

4. Đặc điểm của điện toán đám mây
Điện toán đám mây có những đặc điểm chính sau đây:
Tránh phí tổn cho khách hàng.
Độc lập thiết bị và vị trí: cho phép khách hàng truy cập hệ thống từ bất kỳ nơi
nào hoặc bằng bất kỳ thiết bị gì.
Nhiều người sử dụng: giúp chia sẻ tài nguyên và giá thành, cho phép tập trung
hóa cơ sở hạ tầng, tận dụng hiệu quả các hệ thống.
Phân phối theo nhu cầu sử dụng
Quản lý được hiệu suất
Tin cậy
Khả năng mở rộng.
Cải thiện tài nguyên.
Khả năng duy trì.
5. Mô hình dịch vụ trong điện toán đám mây
Dịch vụ Cloud Computing ( CC ) rất đa dạng và bao gồm tất cả các lớp dịch vụ
điện toán từ cung cấp năng lực tính toán trên dưới máy chủ hiệu suất cao hay các máy
chủ ảo, không gian lưu trữ dữ liệu, hay một hệ điều hành, một công cụ lập trình, hay một
ứng dụng kế toán … Các dịch vụ cũng được phân loại khá da dạng, nhưng các mô hình
dịch vụ CC phổ biến nhất có thể được phân thành 3 nhóm: Dịch vụ hạ tầng (IaaS), Dịch
vụ nền tảng (PaaS) và Dịch vụ phần mềm (SaaS).
a 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á nhân hoặc tổ chức) 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.
Ví dụ điển hình về dịch vụ này là dịch vụ EC2 của Amazon. Khách hàng có thể
đăng ký sử dụng một máy tính ảo trê dịch vụ của Amazon và lựa chọn một hệ thống điều
hành (ví dụ, Windows hoặc Linux) và tự cài đặt ứng dụng của mình.

b 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 (middleware),
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 CC 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).
Dịch vụ App Engine của Google là một dịch vụ PaaS điển hình, cho phép khách
hàng xây dựng các ứng dụng web với môi trường chạy ứng dụng và phát triển dựa trên
ngôn ngữ lập trình Java hoặc Python.
c Dịch vụ phần mềm SaaS (Software as a Service)
Dịch vụ SaaS cung cấp các ưng dụng hoàn chỉnh như một dịch vụ theo yêu cầu
cho nhiều khách hàng với chỉ một phiên bản cài đặt. Khách hàng lựa chọn ứng dụng phù
hợp với nhu cầu và sử dụng mà không quan tâm tói hay bỏ công sức quản lý tài nguyên
tính toán bên dưới.
Dịch vụ SaaS nổi tiếng nhất phải kể đến Salesforce.com với các ứng dụng cho
doanh nghiệp mà nổi bật nhất là CRM. Các ứng dụng SaaS cho người dùng cuối phổ biến
là các ứng dụng office Online của Microsoft hay Google Docs của Google.
6. Các mô hình của điện toán đám mây
a Đám mây “công cộng”
Mô hình đầu tiên được nói đến khi đề cập tới CC chính là mô hình Public Cloud.
Đây là mô hình mà hạ tầng CC được một tổ chức sỡ hữu và cung cấp dịch vụ rộng rãi cho
tất cả các khách hàng thông qua hạ tầng mạng Internet hoặc các mạng công cộng diện
rộng. Các ứng dụng khác nhau chia sẻ chung tài nguyên tính toán, mạng và lưu trữ. Do
vậy, hạ tầng CC được tiết kế để đảm bảo cô lập về dữ liệu giữa các khách hàng và tách
biệt về truy cập.
Các dịch vụ Public Cloud hướng tới số lượng khách hàng lớn nên thường có năng

lực về hạ tầng cao, đáp ứng nhu cầu tính toán linh hoạt, đem lại chi phí thấp cho khách
hàng. Do đó khách hàng của dịch vụ trên Public Cloud sẽ bao gồm tất cả các tầng lớp mà
khách hàng cá nhân và doanh nghiệp nhỏ sẽ được lợi thế trong việc dễ dàng tiếp cận các
ứng dụng công nghệ cap, chất lượng mà không phải đầu tư ban đầu, chi phí sử dụng thấp,
linh hoạt.
b Đám mây “doanh nghiệp”
Đám mây doanh nghiệp (Private Cloud) là mô hình trong đó hạ tầng đám mây
được sở hữu bởi một tổ chức và phục vụ cho người dùng của tôt chức đó. Private Cloud
có thể được vận hành bởi một bên thứ ba và hạ tầng đám mây có thể được đặt bên trong
hoặc bên ngoài tổ chức sở hữu (tại bên thứ ba kiêm vận hành hoặc thậm chí là một bên
thứ tư).
Private Cloud được các tổ chức, doanh nghiệp lớn xây dựng cho mình nhằm khai
thác ưu điểm được các tổ chức, doanh nghiệp lớn xây dựng cho mình nhằm khai thác ưu
điểm về công nghệ và khả năng quản trị của CC. Với Private Cloud, các doanh nghiệp tối
ưu được hạ tầng IT của mình, nâng cao hiệu quả sử dụng, quản lý trong cấp phát và thu
hồi tài nguyên, qua đó giảm thời gian đưa sản phẩm sản xuất, kinh doanh ra thị trường.
d Đám mây “chung”
Đám mây chung (Community Cloud) là mô hình trong đó hạ tầng đám mây được
chia sẻ bởi một số tổ chức cho cộng đồng người dùng trong các tổ chức đó. Các tổ chức
này do đặc thù không tiếp cận với các dịch vụ Public Cloud và chia sẻ chung một hạ tầng
CC để nâng cao hiệu quả đầu tư và sử dụng.
e Đám mây “lai”
Mô hình đám mây lai (Hybrid Cloud) là mô hình bao gồm hai hoặc nhiều hơn các
đám mây trên tích hợp với nhau. Mô hình Hybrid Cloud cho phép chia sẻ hạ tầng hoặc
đáp ứng nhu cầu trao đổi dữ liệu.
7. Bảo mật trong điện toán đám mây
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.
8. Các tác nhân tham gia điện toán đám mây
Nhà cung cấp điện toán đám mây.
Người dùng là người sử dụng hệ thống điện toán đám mây.
Một số nhà sản xuất bán hay đưa sản phẩm và các dịch vụ làm tăng tính thuận lợi
và sự phân phối, sự chấp nhận và sử dụng điện toán đám mây.
Các dịch vụ có thể cung cấp là thiết bị phần cứng hay các phần mềm.
9. Ưu và nhược điểm của điện toán đám mây
• Ưu điểm của điện toán đám mây
Tốc độ xử lý nhanh, chi phí đầu tư ban đầu được giảm đến mức thấp nhất.
Chia sẻ tài nguyên và chi phí trên một địa bàn rộng lớn
Độ tin cậy cao, các vấn đề đều được các chuyên gia xử lý.
Dữ liệu được tập trung ở một nơi.
• Nhược điểm của điện toán đám mây
Tính riêng tư, bảo mật
Tính sẵn sang, di động của dữ liệu
PHẦN 2: NỀN TẢNG G OOGLE APP E NGINE
I Google App Engine
1. Giới thiệu về Google App Engine

Google App Engine (App Engine hay GAE) là một nền tảng điện toán đám mây
của Google để phát triển và lưu trữ ứng dụng web trong những trung tâm dữ liệu do
Google quản lý (google-managed data centers). Bản beta được giới thiệu lần đầu tiên vào
ngày 7 tháng 4 năm 2008.
GAE là 1 dịch vụ lưu trữ các ứng dụng web. Khi nói đến “ứng dụng web”, chúng
ta muốn nói tới các ứng dụng hay dịch vụ được truy cập trên các trang web, thường là
thông qua trình duyệt web: những trang web mua bán, mạng xã hội, … App Engine cũng
có thể phục vụ các trang web truyền thống như xử lý văn bản hay hình ảnh nhưng được
thiết kế dành cho thời gian thực.
Thực ra, GAE được thiết kế để lưu trữ những ứng dụng và phục vụ nhiều người
dùng một cách đồng thời. Khi một ứng dụng có thể phục vụ nhiều người dùng một cách
đồng thời mà không làm giảm hiệu suất, chúng ta gọi đó là sự co giãn (scales). Những
ứng dụng được viết cho App Engine sẽ được co giãn một cách tự động. Càng nhiều người
sử dụng chương trình, App Engine sẽ tạo ra càng nhiều tài nguyên cho ứng dụng đó và
quản lý chúng. Chính bản thân ứng dụng cũng không cần phải biết đến các tài nguyên mà
nó đang sử dụng.
Không như những server cung cấp các dịch vụ lưu trữ thông thường hay các server
có chức năng tự quản lý, với Google App Engine, chúng ta chỉ phải trả tiền cho những tài
nguyên mà chúng ta sử dụng. Những tài nguyên này được đo bằng gigabyte và không có
bất kì lệ phí hàng tháng nào hay lệ phí để chúng ta thay đổi diện mạo trang web. Hóa đơn
thanh toán những nguồn tài nguyên này bao gồm CPU chúng ta sử dụng, lưu trữ hàng
tháng, băng thông vào ra (incoming and outgoing bandwidth), và một số các tài nguyên
khác của dịch vụ App Engine.
2. Các nền tảng được hỗ trợ
Hiện App Engine hỗ trợ 2 loại ngôn ngữ chính là: Python và Java hiện tại thêm
ngôn ngữ Go (đang ở mức thử nghiệm). 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.
kiến trúc hoạt động
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.
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ừ 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.
3. Các thành phần và chức năng của GAE
a Môi trường thực thi
Google App Engine cung cấp hai môi trường thực thi tốt cho các ứng dụng. Đó là
Java và Python. Môi trường chúng ta chọn sẽ phụ thuộc vào ngôn ngữ và những công
nghệ liên quan khi chúng ta dùng để phát triển ứng dụng.
Môi trường Java thực thi các ứng dụng được viết cho JVM6. Ứng dụng có thể
được phát triển dựa vào ngôn ngữ lập trình Java hoặc hầu hết các ngôn ngữ có thể biên
dịch và chạy trên JVM: ví dụ PHP (dùng Quercus), Ruby (dùng JRuby), Javascript (dùng
Rhino), Scala, Groovy. App Engine cũng hỗ trợ Google Web Tootkit (GWT).
Môi trường Python thực thi các ứng dụng được viết dựa vào ngôn ngữ lập trình
Python bản 2.5. App Engine gọi các ứng dụng Python nhờ vào CGI (Common Gateway
Interface). Ứng dụng có thể dùng hầu hết các thư viện của Python, các framework của
Python như Django, web2py, Pylons.
Cả hai môi trường Java và Python đều sử dụng chung một mô hình: một yêu cầu
gửi đến ứng dụng trên server, ứng dụng được kích hoạt (nếu cần thiết), gọi bộ phận xử lý
yêu cầu và trả về kết quả cho client. Mỗi môi trường sử dụng bộ tiền xử lý (interpreter)
cho riêng mình (JVM hay Python).
b Các file server tĩnh (static file servers)
Hầu hết các website có một số tài nguyên mà chúng chuyển đến các trình duyệt
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.
c 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.
d 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.
Đố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. Các
thực thể có thể có cùng thuộc tính với các thực thể cùng loại khác nhưng khác về kiểu dữ
liệu.Các thực thể có thể có nhiều giá trị cho một thuộc tính đơn lẻ.
Mỗi thực thể có một khóa riêng (key) phân biệt lẫn nhau được cung cấp bởi ứng
dụng hoặc do App Engine. Khác với CSDL quan hệ, khoá của thực thể không phải là
thuộc tính, nó tồn tại độc lập với thực thể. Khoá của thực thể không được thay đổi khi
thực thể đã được tạo ra.
e Truy vấn (queries) và Chỉ mục (indexes)

Một câu truy vấn trên datastore trả về không hoặc nhiều thực thể cùng loại với
nhau. Nó cũng có thể trả về các khóa của thực thể. Câu truy vấn có thể dựa vào các giá trị
thuộc tính của thực thể và được sắp xếp theo giá trị của thuộc tính. Câu truy vấn cũng có
thể làm việc với các khóa của thực thể.
Với App Engine, mỗi câu truy vấn sẽ có một chỉ mục trong datastore. Khi ứng
dụng cần thực hiên một câu truy vấn, thì datastore sẽ tìm chỉ mục của câu truy vấn đó.
Khi chúng ta tạo mới một thực thể và cập nhật cái cũ thì datastore cũng sẽ cập nhật lại chỉ
mục. Điều này giúp cho câu truy vấn được nhanh hơn.
f Phiên giao dịch (transaction)
Khi một ứng dụng có quá nhiều client liên tục đọc hay ghi cùng một dữ liệu ở
cùng một thời điểm, thì phiên giao dịch rất cần thiết để dữ liệu không bị đọc sai. Mỗi
phiên giao dịch là đơn vị nhỏ nhất và chỉ có hai trạng thái là thành công hoặc thất bại.
Một ứng dụng đọc hay cập nhật nhiều thực thể trong một phiên giao dịch, nhưng
nó phải nói cho App Engine biết những thực thể nào sẽ được cập nhật khi nó tạo ra nhiều
thực thể. Ứng dụng làm được điều này bởi việc tạo ra nhóm thực thể. Nhờ nhóm thực thể,
App Engine sẽ biết được các thực thể sẽ phân tán như thế nào qua các server, vì thế nó có
thể khẳng định chắc chắn là phiên giao dịch thành công hay thất bại. App Engine cũng hỗ
trợ những phiên giao dịch nội bộ (local transaction).
Nếu một người dùng cố gắng cập nhật một thực thể trong khi người khác đang cập
nhật thực thể đó thì datastore sẽ ngay lập tức trả về một biệt lệ báo lỗi. Trong thuật ngữ
database, thì ta nói App Engine sử dụng “optimistic concurrency control”. Với chỉ 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.
g 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.
h 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 tài khoản riêng
của mình, hoặc sử dụng một provider OpenID.
i Các công cụ lập trình (programming tools)
Google cung cấp một số tool miễn phí cho việc phá triển ứng dụng App Engine
bằng ngôn ngữ Java và Python. Chúng ta có thể download software development kit
(SDK) cho ngôn ngữ tương ứng và hệ điều hành của chúng ta từ website Google. Người
dùng Java có thể down SDK cho Java trong form plug-in cho Eclipse. Người dùng
Python sử dụng Windows hoặc Mac OS X có thể tải SDK cho Python từ form của giao
diện ứng dụng. Các SDK đó đều có file zip, sử dụng command-lines để trực tiếp tích hợp
vào môi trường phát triển hoặc xây dựng hệ thống.
Mỗi SDK bao gồm một server web chạy ứng dụng của chúng ta tại máy cá nhân,

đóng vai trò môi trường thực thi,kho dữ liệu và các service. Server này tự động phát hiện
những thay đổi trong file source và load lại chúng nếu cần, vì thế chúng ta có thể luôn mở
server trong khi đang lập trình cho ứng dụng.
4. Giới hạn
Các tệp tin khi lưu trữ lên App Engine chỉ có thể đọc-xóa (không sửa chữa).
App Engine chỉ có thể chạy qua các yêu cầu HTTP (các dịch vụ khác có thể chạy lệnh
qua Console terminal) (Các task queue cũng chạy thông qua yêu cầu HTTP).
Các ứng dụng dùng python có thể sử dụng các thư viện python ngoài các thư viện được
cung cấp bởi AppEngine nhưng phải là các thư viện viết bằng python C và Pyrex không
được hỗ trợ.
Các ứng dụng java chỉ sử dụng được tập các (The JRE Class White List) các lớp
viết từ JRE tiêu chuẩn.
Không hỗ trợ tên miền 'naked' (không có tiền tố www) ví dụ
sẽ không chạy trên Appengine mà phải là .
Datastore không lọc (filter) được hai thuộc tính cùng một lúc ví dụ age > 4 and age
< 10.
5. Sự khác biệt với các dịch vụ khác
So với các dịch vụ điện toán đám mây khác như Amazon EC2, hoặc với các hình
thức viết trên máy chủ dịch vụ truyền thống App Engine cung cấp một môi trường thuận
lợi hơn để viết đặc biệt cho các ứng dụng có nhu cầu mở rộng cho nhiều người dùng
đồng thời. Nhưng điểm giới hạn là phải viết trên các dịch vụ mà App Enginecung cấp.
App Engine giải quyết các khó khăn trong việc phát triển và quản trị hệ thống khi xây
dựng một ứng dụng lớn (hàng trăm yêu cầu trên giây).
Khi các mô hình khác yêu cầu người dùng cài đặt và thiết lập cấu hình thì
App Engine chỉ cần một màn hình quản trị để quản trị cũng như mở rộng hay thu nhỏ
mức cung ứng dịch vụ.
II Hướng dẫn đăng ký GAE
Đăng ký Google App Engine bạn làm theo các bước sau để được sử dụng hosting
chuyên nghiệm miễn phí Google dạng tenban.appspot.com:
Bước 1: Truy cập và đăng nhập bằng tài khoản

Gmail của bạn.
Bước 2: Nhập số điện thoại của bạn để Google gửi mã xác nhận. Số điện thoại dạng
+849 (+84 là mã Việt Nam, bỏ số 0 ở đầy số 098=98).
Việc gửi mã xác nhận cũng mất khoảng 2 phút tùy vào mạng. Nếu không được các
bạn đổi số điện thoại khác.
Bước 3: Nhập mã xác nhận mà Google vửa gửi cho bạn.
Bước 4: Nhập thông tin đăng ký gồm tên tài khoản, tiêu đề. Chú ý kiểm tra tên tài khoản
của bạn đã được đăng ký chưa.
Bước 5: Bạn chuyển đến trang dưới tức là bạn đã đăng ký thành công Google
App Engine. Như vậy bạn đã có hosting miễn phí chuyen nghiệp của Google với tên
miền: tenban.appspot.com .
III Cách upload dữ liệu lên GAE
Upload file, đồng bộ hóa dữ liệu từ máy lên host Google. Các bạn theo các bước
hướng dẫn sau:
Bước 1: Download và cài đặt Python 2.7.2 tại đây. Chọn phiên bản phù hợp với hệ điều
hành (bạn có thể sử dụng Java, làm tương tự).
Chú ý nên download bản đầu tiên (chính thức), các bản sau đôi khi không tương thích.
Bước 2: Download và cài đặt Google App Engine SDK for Python tại
đây [ Chọn phiên bản phù hợp với hệ
điều hành.
Bước 3: Kiểm tra thông số cài đặt. Chạy ứng dụng Google App Engine Launcher ->
chọn Edit -> chọn Preferences -> kiểm tra hoặc thêm đường dẫn đến ứng dụng
Python và Google App Engine theo hình ảnh dưới.
Tạo project mới để đồng bộ dữ liệu của bạn.
Chạy ứng dụng Google App Engine Launcher > chọn File > chọn Create
NewApplication ->nhập domain của bạn (tenban.appspot.com chỉ nhập phần tenban)
vào mục Application Name -> chọn Browser để tạo mới ứng dụng (ví dụ chọ ổ D:\)
Bước 4: Vào ổ (C|D|E bạn vừa chọn) tìm tên thư mục bạn vừa tạo, ví dụ của tôi là
D:\\igooblog -> tiếp đó tạo mới thư mục download (bạn có thể tùy chọn đặt tên, và thêm
số lượng thư mục tùy ý) -> dùng notepad mở và sửa file app.yaml thay thế bằng nội dung

dưới đây:
application: igooblog
version: 1runtime: pythonapi_version: 1
handlers:- url: /download static_dir: download
Chú ý: thay đổi tên igooblog thành domain của bạn, ta có thể thêm nhiều thư mục bằng
cách copy tương tự từ đoạn handlers vớ tên thư mục khác.
Bước 5: Ok rồi, giớ ta chỉ cần đồng bộ là xong, dữ liệu trên domain
(tenban.appspot.com) sẽ tương đương với dữ liệu trong thử mục tenban trong ổ (D|C|E
bạn vừa chọn). Đường dẫn tương đương sẽ là tenban.appspot.com/download
Chạy ứng dụng Google App Engine Launcher -> chọn ứng dụng của bạn -> chọn icon
Deploy -> nhập gmail và mật khẩu của bạn rồi ok đợ em nó đồng bộ là xong.
Kết quả: Như vậy là đã đồng bộ xong, sau này ta chỉ cần copy các file và thư
mụcdownload rồi đồng bộ là được. Bạn có thể thêm thư mục khác vào trong thư mục ứng
dụng ví dụ: css, js, images nhưng chú ý sửa file app.yaml và thêm đoạn handlers tương
ứng.
TÀI LIỆU THAM KHẢO
WWW.hoaiphan.com
www.tailieu.vn
ww w . vi.wikipedia.org
www. ebooks-ict.blogspot.com

×