1. Trang chủ >
  2. Công Nghệ Thông Tin >
  3. Quản trị mạng >

CHƯƠNG 2. XÂY DỰNG ỨNG DỤNG CLOUD COMPUTING TRÊN NỀN TẢNG 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 (1.54 MB, 58 trang )


Bài giảng Điện toán đám mây

4.1.28.



Khoa CNTT trường đại học Quy Nhơn



2.1.2 Môi trường phát triển



Một ứng dụng App Engine đáp ứng các yêu cầu web. Một yêu cầu web sẽ bắt đầu khi có một

người dùng hay điển hình là các trình duyệt web của người dùng gửi một yêu cầu truy cập vào ứng

dụng thông qua giao thức HTTP. Khi App Engine nhận được yêu cầu, nó sẽ xác định ứng dụng dựa vào

tên miền, hoặc tên miền con của .appspot.com (cung cấp miễn phí mỗi ứng dụng) hoặc là một tên miền

riêng của chúng ta đã được đăng kí và thiết lập với Google Apps. App Engine lựa chọn một máy chủ từ

nhiều máy chủ để xử lý các yêu cầu đó. Sau đó, App Engine sẽ gửi các yêu cầu đã nhận được từ người

dùng đến ứng dụng phù hợp để xử lý, sau khi đã xử lý xong các ứng dụng này sẽ gửi dữ liệu trả về cho

App Engine, App Engine sẽ nhận dữ liệu phản hồi từ các ứng dụng và trả về cho người dùng thông qua

trình duyệt web. Theo góc nhìn của ứng dụng, môi trường thực thi chỉ xuất hiện và tồn tại khi bắt đầu

một yêu cầu và sẽ biến mất khi yêu cầu đó được đáp ứng xong. App Engine cung cấp tối thiểu 2 cách

thức lưu trữ dữ liệu tồn tại giữa các yêu cầu , nhưng các cơ chế này tồn tại bên ngoài môi trường thực

thi. Môi trường thực thi sẽ không duy trì trạng thái giữa các yêu cầu, hoặc ít nhất không mong muốn

các trạng thái sẽ được duy trì giữa các yêu cầu. App Engine có thể phân phát lưu lượng truy cập trong

nhiều server, vì nó cần phải đáp ứng cho nhiều yêu cầu xử lý như nhau, bất kể có bao nhiêu lưu lượng

truy cập nó sẽ xử lý cùng một lúc. Bản thân GAE có cơ chế để quản lý các trạng thái của từng yêu cầu

trong mỗi ứng dụng dưới dạng Sandbox (người phát triển không biết rõ cơ chế bên trong nhưng hỗ trợ

người phát triển những dịch vụ cần thiết). Điều này cho phép App Engine xử lý một yêu cầu với một

máy chủ mà nó mong muốn trong ước tính của nó để trả về phản hồi nhanh nhất. Không có cách nào để

đảm bảo rằng phần cứng trên cùng một máy chủ sẽ xử lý hai lần yêu cầu, ngay cả khi các yêu cầu đến

cùng từ một client, và đến khá nhanh chóng. Sandboxcho phép App Engine chạy nhiều ứng dụng trên

cùng một máy chủ, trong đó hành vi của một ứng dụng không làm ảnh hưởng đến các ứng dụng khác.

Ngoài ra để giới hạn quyền truy cập đến hệ điều hành, môi trường thực thi cũng giới hạn việc sử dụng

CPU và bộ nhớ . App Engine giữ các giới hạn này linh hoạt và chặt chẽ hơn các giới hạn này để các

ứng dụng sử dụng nhiều tài nguyên hơn để bảo vệ tài nguyên được chia sẻ từ những ứng dụng “không

mong muốn”. Mỗi yêu cầu có tối đa 30s để trả về phản hồi cho client. Mặc dù thời gian này có vẻ đáp

ứng tốt cho một ứng dụng web, nhưng App Engine được tối ưu hóa cho các ứng dụng đáp ứng chưa

đầy một giây. Ngoài ra nếu một ứng dụng sử dụng nhiều CPU, App Engine có thể làm chậm nó xuống,

nên các ứng dụng không trì hoãn bộ vi xử lý trên một máy phục vụ đa ứng dụng. Một CPU tập trung xử

lý yêu cầu có thể mất nhiều thời gian để hoàn thành, khi App Engine dò tìm các mô hình theo cách sử

dụng CPU và phân bổ cho phù hợp. Google App Engine cung cấp hai môi trường thực thi chính cho

các ứng dụng. Đó là Java và Python, hiện đang thử nghiệm trên Go. 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. Ứ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).

4.1.29.



2.1.3. Mô hình kiến trúc và các dịch vụ của GAE



Trong mô hình kiến trúc này cho thấy được hoạt động của GAE. Một yêu cầu từ trình duyệt của

máy bàn, máy xách tay, điện thoại, … được gửi tới GAE thông qua lối vào (Front End). Một ứng dụng

27



Bài giảng Điện toán đám mây



Khoa CNTT trường đại học Quy Nhơn



chủ (App Master) sẽ điều khiển, lập lịch cho tất cả các yêu cầu. Nếu yêu cầu truy cập tệp tin tĩnh, yêu

cầu sẽ gửi đến dịch vụ các tệp tĩnh (Static Flies). Nếu yêu cầu nội dung động, yêu cầu sẽ được gửi tới

ứng dụng của mình trên GAE, thông qua các thư viện APIs, ứng dụng có thể truy cập tới các dịch vụ

lưu trữ (Datastore), dịch vụ lưu trữ bộ nhớ (Memcache), dịch vụ thao tác ảnh (Image manipulation),…

Mỗi dịch vụ có chức năng và hoạt động riêng biệt, không phụ thuộc lẫn nhau. Khi xây dựng ứng dụng

với ngôn ngữ Java, GAE hỗ trợ thư viện kết hợp thư viện chuẩn Java cho phép ứng dụng truy cập vào

các dịch vụ tương ứng.



Hình 2.1 Kiến trúc GAE

2.1.3.1 Các file server tĩnh (static server files)

2.1.3.2. Tổ chức và lưu trữ dữ liệu (Datastore)

2.1.3.3. Quản lý vùng nhớ đệm (Memcache)

2.1.3.4. Dịch vụ giao tiếp web (URL Fetch)

2.1.3.5. Dịch vụ thư điện tử (Mail)

2.1.3.6. Một số dịch vụ khác



2.2. Xây dựng và triển khai ứng dụng trên GAE

4.1.30.



2.2.1 Công cụ xây dựng ứng dụng



Java SE Development Kit 6 update 18

Eclipse Indigo

Google Plugin for Eclipse 3.7

Google Web toolkit SDK 2.4.0

Công cụ lập trình

Cần phải cài đặt GAE SDK, Eclipse, tích hợp GAE SDK vào Eclipse, cài đặt bộ JDK nếu chưa

có.

Google App Engine SDK và Eclipse

-



Để



tải



về



bộ



Google



App



Engine



SDK có thể vào địa chỉ sau :

https://developers.google.com/appengine/downloads sau đó chọn phiên bản SDK cũng như ngôn

ngữ lập trình Java, Python hoặc Go để tải về.

28



Bài giảng Điện toán đám mây



Khoa CNTT trường đại học Quy Nhơn



- Để tải về Eclipse có thể vào địa chỉ : http://www.eclipse.org/downloads/ . Có nhiều phiên

bản, nhưng nên chọn phiên bản Eclipse Classics 4.2 là phù hợp nhất. Tùy theo phiên bản windows đang

cài đặt mà chọn 32 bit hoặc 64 bit.



Ngoài

ra

cần

phải

cài

đặt

bộ

công

cụ

JDK

cài :http://www.oracle.com/technetwork/java/javase/downloads/index.html



nếu



chưa



Tích hợp Google App Engine SDK vào Eclipse

Có 2 cách để tích hợp bộ công cụ Google App Engine SDK vào Eclipse. Cách 1:

Bước



1:



Tải



về



bộ



công



cài



đặt



mở rộng cho Eclipse tại :

https://developers.google.com/eclipse/docs/install-from-zip. Chọn đúng phiên bản Eclipse đã cài

đặt, như ở trên là Eclipse 4.2

Bước 2: Khởi chạy Eclipse, vào Help -> Install new softwares. Chọn Add, chọn Archive, chọn

đường dẫn đến tập tin vừa tải về, đặt tên ở khung Name, click Ok, sau đó thực hiện cài đặt theo hướng

dẫn.

29



Bài giảng Điện toán đám mây



Khoa CNTT trường đại học Quy Nhơn



Hình 2.2 Tích hợp Google App Engine vào Eclipse.

Nếu bạn chưa tải về bộ công cụ mở rộng theo cách 1 thì hãy sử dụng cách thứ 2: Trong bước 2

của cách 1, nhấn nút Add, trong khung Location gõ:

http://dl.google.com/eclipse/plugin/4.2 (đối với Eclipse 3.8/4.2 (Juno))

http://dl.google.com/eclipse/plugin/3.7 (đối với Eclipse 3.7 (Indigo))

http://dl.google.com/eclipse/plugin/3.6 (đối với Eclipse 3.6 (Helios))

sau đó tiến hành cài đặt theo hướng dẫn.

Đăng kí tài khoản Google App Engine

Để đăng kí tài khoản để có thể sử dụng các dịch vụ do Google App Engine cung cấp ta truy cập

vào địa chỉ : https://appengine.google.com



30



Bài giảng Điện toán đám mây



Khoa CNTT trường đại học Quy Nhơn



Hình 2.3 Đăng ký tài khoản GAE

Người dùng có thể đăng ký mới tài khoản bằng cách click nút Đăng ký hoặc đăng nhập bằng tài

khoản Gmail của mình.



Hình 2.4 Tạo ứng dụng trên GAE

Sau khi đăng ký, người dùng phải thông qua một vài bước cơ bản để xác minh tài khoản bằng

số điện thoại để hoàn tất quá trình. Để tạo mới một ứng dung, click nút Create Application, sau đó hoàn

tất các thông tin sau:

Application Indentifier: Tạo địa chỉ cho ứng dụng web sẽ tạo đồng thời đây cũng sẽ là ID, ví dụ

nếu nhập: qnufilmstore thì địa chỉ để truy cập vào ứng dụng sẽ là :

https://qnufilmstore.appspot.com .

Application Title: Tên của ứng dụng.

31



Bài giảng Điện toán đám mây



Khoa CNTT trường đại học Quy Nhơn



Ngoài ra còn có các tùy chọn xác thực (Authentication Options) sau:

Open to all Google Accounts users: Tất cả mọi người đều có thể truy cập vào ứng dụng web

này, đây là tùy chọn mặc định.

Restricted to the following Google Apps domain: Chỉ cho phép các thành viên của Google Apps

truy cập vào ứng dụng. Hay nói cách khác, tùy chọn này chỉ cho phép các lập trình viên mới có thể truy

cập tới ứng dụng này.

Open to all users with an OpenID Provider: Truy cập vào ứng dụng theo phương thức OpenID.

OpenID có thể hiểu là cho phép sử dụng một tài khoản khác (Google, Micorosoft, Yahoo,…) để truy

cập vào ứng dụng. Những tài khoản nào được truy cập thì tùy thuộc vào cài đặt của lập trình viên.

Với mỗi tài khoản Google App Engine, người dùng được tạo 10 ứng dụng miễn phí. Nếu muốn

tạo thêm, người dùng phải trả phí cho ứng dụng đó.



Hình 2.5 Các ứng dụng trên GAE đã tạo

4.1.31.



Tạo ứng dụng Google App Engine với Eclipse



Sau khi đã cài đặt các công cụ cần thiết như hướng dẫn trên, để tạo mới một ứng dụng với

Eclipse ta làm như sau:

Bước 1: Tại màn hình Eclipse, vào File → New → Other → Google → Web Application

Project hoặc kich vào biểu tượng GDT Pull Down trên thanh công cụ, chọn New Web Application

Project.



32



Bài giảng Điện toán đám mây



Khoa CNTT trường đại học Quy Nhơn



Hình 2.6 Tạo ứng dụng trên GAE từ Eclipse

Bước 2: Tại khung cửa sổ New Web Application Project, nhập tên cho ứng dụng tại Project

Name, địa chỉ của gói ứng dụng (ví dụ: com.example.projectname), Nơi lưu ứng dụng tại Location

(ngay trong thư mục mặc định hoặc địa chỉ khác)

Bỏ chọn Uses Google Webtookit nếu như không dùng bộ công cụ này (nên bỏ )

Chọn Uses Google App Engine và chọn phiên bản SDK nếu cài nhiều phiên bản SDK khác

nhau.

Bước 3: Nhấn Finish để hoàn tất quá trình.



33



Bài giảng Điện toán đám mây



Khoa CNTT trường đại học Quy Nhơn



Hình 2.7

Tải ứng dụng lên Google App Engine với Eclipse

Để tải một ứng dụng lên Google App Engine, cần xác định tên Application và phiên bản của



ứng dụng trong tập tin appengine-web.xml trong đường dẫn War/WEB-INF/appengine-web.xml . Ví dụ

dươi, phiên bản 1 năm

đây xác định một ứng dụng

xmlns="http://appengine.google.com/ns/1.0">

trong thẻ .

qnufilmstore theo hướng dẫn ở trước.

Tên Application phải giống với tên ứng dụng đã đăng kí

1

true





34




value="WEB-INF/logging.properties"/>



Bài giảng Điện toán đám mây



Khoa CNTT trường đại học Quy Nhơn



Với Eclipse, để tải ứng dụng lên Google App Engine, ta click chuột phải vào ứng dụng

cần tải, chọn Google, chọn Deploy to App Engine, nhấn Deploy để bắt đầu quá trình tải. Sau

khi quá trình tải thành công, vào https://[application].appspot.com để truy cập tới ứng dụng vừa

tải. Như ví dụ ở trên là https://qnufilmstore.appspot.com .



35



Bài giảng Điện toán đám mây



Khoa CNTT trường đại học Quy Nhơn



Hình 2.8

36



Bài giảng Điện toán đám mây



Khoa CNTT trường đại học Quy Nhơn



Hình 2.9

Ví dụ Hello World với App Engine



Một ứng dụng App Engine sử dụng các servlet dùng để truyền, tải dữ liệu.

- Tạo mới một ứng dụng web với Google App Engine theo hướng dẫn ở trên, đặt tên là

HelloWorld, đường dẫn pakage : qnu.cntt.helloworld

- Tạo mới file HelloworldServlet.java theo đường dẫn pakage qnu.cntt.helloworld trong

thư mục src bằng cách kich chuột phải → new → class :



Hình 2.10

Gõ nội dung của file HelloworldServlet.java như sau :

37



Xem Thêm
Tải bản đầy đủ (.docx) (58 trang)

×