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

Tiểu luận môn điện toán lưới và đám mây TÌM HIỂU XÂY DỰNG DỊCH VỤ TRÒ CHUYỆN TRÊN NỀN TẢNG ĐÁM MÂY

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.14 MB, 28 trang )

Đại học Công Nghệ Thông Tin
Đại học Quốc gia Thành phố Hồ Chí Minh

BÁO CÁO:
TÌM HIỂU XÂY DỰNG DỊCH VỤ TRÒ
CHUYỆN TRÊN NỀN TẢNG ĐÁM
MÂY
Môn học: ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY
GVHD : PGS.TSKH. Nguyễn Phi Khứ
Học viên: Hồ Duy Nhật Linh – CH1301028
TP.HCM, tháng 6 năm 2014
2
Mục lục
3
I. Mở đầu:
Điện toán đám mây còn gọi là điện toán máy chủ ảo, là mô hình điện toán sử dụng
các công nghệ máy tính và phát triển dựa vào mạng 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ệ
đó. Theo tổ chức xã hội máy tính IEEE "Nó là hình mẫu trong đó thông tin được lưu trữ
thường trực tại các máy chủ trên Internet và chỉ được được lưu trữ tạm thời ở các máy
khách, bao gồm máy tính cá nhân, trung tâm giải trí, máy tính trong doanh nghiệp, các
phương tiện máy tính cầm tay, ". Điện toán đám mây là khái niệm tổng thể bao gồm cả
các khái niệm như phần mềm dịch vụ, Web 2.0 và các vấn đề khác xuất hiện gần đây, các
xu hướng công nghệ nổi bật, trong đó đề tài chủ yếu của nó là vấn đề dựa vào Internet để
đáp ứng những nhu cầu điện toán của người dùng.
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.
Do đó, mô hình điện toán đám mây được sử dụng để đáp ứng nhu cầu lớn này.
4
II. Điện toán đám mây:
A. Khái niệm:
Thuật ngữ “cloud” được sử dụng như một phép ẩn dụ cho mạng Internet, dựa trên
cách vẽ đám mây thể hiện cho một mạng lưới nào đó. Còn thuật ngữ “computing” là các
hoạt động hướng mục tiêu từ việc sử dụng công nghệ thông tin, bao gồm các hệ thống
phần cứng và phần mềm được sử dụng cho một phạm vi mục đích rộng như: xử lý, cấu
trúc, và quản lý nhiều dạng thông tin khác nhau.Theo Viện Tiêu Chuẩn và Công Nghệ
Mỹ (NIST):“Điện toán đám mây là một mô hình cho phép truy cập mạng theo nhu cầu,
thuận tiện, sẵn có tới một luồng dùng chung các tài nguyên máy tính có thể cấu hình
được (như mạng lưới, máy chủ, kho lưu trữ, ứng dụng, dịch vụ) mà có thể nhanh chóng
cung cấp và giải phóng với nỗ lực quản lý hay tương tác nhà cung cấp dịch vụ tối thiểu.”
A. Tính chất của điện toán đám mây:
• Tính linh động: Người dùng có thể lựa chọn dịch vụ phù hợp với nhu cầu của
mình:
o Thêm dịch vụ nếu cần thiết
o Bớt dịch vụ không cần thiết
5
VD: 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ý.
VD: Người dùng có thể truy cập bản đồ Google Map trên bất cứ phương tiện
nào để có thể xem tình trạng giao thông cũng như hướng dẫn đường đi.
• 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.
VD: Các dữ liệu được phân tán trên nền tảng đám mây; do đó, dữ liệu an toàn
không bị ảnh hưởng bởi các thiệt hại vật lí như hỏng hóc server
• 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.
VD: Dữ liệu thông tin tài khoản được phân tán trên nhiều máy chủ khác nhau.
Do đó, thông tin tài khoản người dùng khi bị tấn công sẽ được giảm thiệt hại,
hacker chỉ lấy được một phần nhỏ dữ liệu
• 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. Các mô hình điện toán đám mây:
Mô hình điện toán đám mây được phân lớp thành 2 mô hình chính. Sự phân lớp
này tùy thuộc vào quá trình triển khai và hình thức sử dụng dịch vụ.
6

1. Mô hình dịch vụ
a) Infrastructure as a Service – IaaS ( Hạ tầng như một dịch vụ):
Là mô hình cung cấp dịch vụ mà khách hàng sử dụng việc xử lý, kho lưu trữ,
mạng lưới, và các tài nguyên máy tính khác. IaaS có khả năng cung cấp nhanh và đàn
hồi, cùng với việc kiểm soát tài nguyên. Trong mô hình này khách hàng có thể triển
khai, thực thi phần mềm và các dịch vụ mà không cần quản lý hay điều khiển các tài
nguyên cơ sở (máy chủ, mạng, kho lưu trữ). Dịch vụ IBM Research Compute Cloud
(RC2), Amazon EC2 là những ví dụ điển hình về loại hình dịch vụ này.
b) Platform as a Service – PaaS (Nền tảng như một dịch vụ):
Là mô hình cung cấp dịch vụ mà khách hàng có thể sử dụng ngôn ngữ lập trình,
công cụ, nền tảng để phát triển và triển khai ứng dụng trên nền tảng dùng chung với
khả năng kiểm soát môi trường và ứng dụng đã triển khai. IBM Workload Deployer,
Google App Engine, Windows Azure, Force.com từ Salesforce là những ví dụ về PaaS
7
Một số dịch vụ PaaS có thể kể đến 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) Software as a Service – SaaS (Phần mềm như một dịch vụ ):
Là mô hình phổ biến mà khách hàng sử dụng các ứng dụng chuyên môn từ các
thiết bị khác khác nhau qua một trình duyệt Web trên nền tảng dùng chung mà không
cần quản lý hay kiểm soát tài nguyên cơ sở.
Một số dịch vụ SaaS có thể kể đến như:
• Google: Gmail, Google Docs, Drive
• Microsoft: OneDrive
8
d) Business Process as a Service-BPaaS (Quy trình nghiệp vụ
như một dịch vụ ):
Là một mô hình mới nổi mà khách hàng có thể sử dụng các kết quả kinh doanh

bằng cách truy cập các dịch vụ nghiệp vụ qua giao hiện trung tâm Web trên nền tảng
dùng chung. Ví dụ nghiệp vụ quản lý phúc lợi nhân viên, dịch vụ du lịch, dịch vụ đấu
thầu, vân vân.
Một số dịch vụ BPaas bao gồm:
• Quản lý nhân sự ERP
• Quản lý trường học sfoPro
• Dịch vụ bán hàng trực tuyến Magento Go
2. Mô hình triển khai
a) Đám mây tư nhân (Private Cloud)
Là hệ thống CNTT được sở hữu và quản lý trong mạng nội bộ của một doanh
nghiệp phía sau tường lửa. Truy cập vào đám mây tư nhân được giới hạn đối với
người dùng. Đám mây tư nhân điều khiển sự hiệu quả, sự chuẩn hoá và các thực hành
tốt nhất trong khi vẫn duy trì sự tuỳ biến và kiểm soát cùng với tổ chức. Trong môi
trường đám mây tư nhân, tất cả tài nguyên, nguồn lực là thuộc nội bộ doanh nghiệp.
Việc quản lý đám mây cũng thuộc nội bộ doanh nghiệp.
9
b) Đám mây công cộng(public cloud):
Là hệ thống CNTT được cung cấp trên mạng Internet, được sở hữu và quản lý bởi
nhà cung cấp dịch vụ. Người dùng cần đăng ký để được cấp quyền truy cập vào đám
mây công cộng. Đám mây công cộng cung cấp một tập hợp các quy trình thương mại,
ứng dụng, dịch vụ hạ tầng được chuẩn hoá theo mức giá linh hoạt dựa trên việc sử
dụng.
Mô hình đa người thuê là đặc điểm chính của dịch vụ đám mây công cộng.
c) Đám mây lai:
Là sự kết hợp những đặc điểm của cả đám mây công cộng và đám mây tư nhân,
mà ở đó các phương thức cung cấp dịch vụ trong và ngoài được kết hợp. Ví dụ trong
trường hợp đám mây tư nhân ngoài mặt bằng doanh nghiệp, tài nguyên thì được dành
riêng, nhưng nó lại không phải là tài sản của doanh nghiệp đó. Doanh nghiệp quản lý
danh mục dịch vụ và các quy tắc, còn nhà cung cấp dịch vụ đám mây vận hành và
quản lý hạ tầng đám mây và luồng tài nguyên.

d) Các đám mây cộng đồng (Community cloud)
10
Các đám mây cộng đồng (community cloud) là các đám mây được chia sẻ bởi một
số tổ chức và hỗ trợ một cộng đồng cụ thể có mối quan tâm chung (ví dụ: chung sứ mệnh,
yêu cầu an ninh, chính sách ) Nó có thể được quản lý bởi các tổ chức hoặc một bên thứ
ba.Một đám mây cộng đồng có thể được thiết lập bởi một số tổ chức có yêu cầu tương tự
và tìm cách chia sẻ cơ sở hạ tầng để thực hiện một số lợi ích của điện toán đám mâyTùy
chọn này là tốn kém hơn nhưng có thể đáp ứng về sự riêng tư, an ninh hoặc tuân thủ các
chính sách tốt hơn.
B. Xu hướng phát triển điện toán đám mây:
3. Đối với thị trường thế giới
Điện toán đám mây (Cloud computing) không còn là điều gì mới mẻ. Bắt nguồn từ
điện toán lưới (grid computing) từ những năm 80, điện toán theo nhu cầu (Utility
computing) và phần mềm dịch vụ (SaaS), Oracle là nhà tiên phong trong việc triển khai
công nghệ này. Cho đến nay, điện toán đám mây đang được phát triển và cung cấp bởi
nhiều nhà cung cấp, trong đó có Amazon, Google, DataSynapse, Salesforce cũng như các
nhà cung cấp truyền thống Microsoft, IBM, HP… Đã được rất nhiều người dùng cá nhân
cho đến các công ty lớn như L’Oréal, General Electric, Ebay, Coca-cola… chấp nhận và
sử dụng. Công ty nghiên cứu Gartner đánh giá rằng ưu tiên chính của những Giám đốc
Công nghệ (CIO) sẽ là các ứng dụng doanh nghiệp ảo hóa và điện toán đám mây để giúp
công ty họ bớt lo lắng về quản lý cơ sở hạ tầng thông tin, tập trung vào việc chèo lái quá
trình phát triển của công ty hơn. Cũng theo đánh giá, tính đến năm 2012, 80% doanh
nghiệp trong danh sách 1.000 công ty hàng đầu (theo đánh giá của tạp trí Fortune - Mỹ)
sẽ sử dụng ít nhất một vài loại hình dịch vụ đám mây và khoảng 20% doanh nghiệp sẽ
không còn sở hữu các tài sản hoặc hạ tầng công nghệ thông tin.
4. Đối với thị trường Việt Nam
Không nằm ngoài xu thế, Việt Nam đang dần tiếp cận các dịch vụ đám mây thông
qua dự án của một số doanh nghiệp nước ngoài như Microsoft, Intel… cũng như từ
những nhà phát triển, cung cấp trong nước như FPT, Biaki… IBM là doanh nghiệp tiên
phong khai trương trung tâm điện toán đám mây tại Việt Nam vào tháng 9/2008 với

khách hàng đầu tiên là là Công ty cổ phần công nghệ và truyền thông Việt Nam (VNTT).
Có thể nói Việt Nam là một trong những nước đầu tiên ở ASEAN đưa vào sử dụng điện
toán đám mây. Công nghệ này được coi là giải pháp cho những vấn đề mà nhiều công ty
đang gặp phải như thiếu năng lực CNTT, chi phí đầu tư hạn chế… Hiện nay nhiều công
ty đang hoang phí tài nguyên như không khai thác hết công suất của hệ thống máy chủ,
đầu tư quá nhiều về mặt con người. Trong khi đó, về lý thuyết, cloud computing sẽ cho
phép doanh nghiệp không cần tập trung quá nhiều cho cơ sở hạ tầng hoặc nâng cấp ứng
dụng, không đòi hỏi nguồn nhân lực lớn và có thể dễ dàng thay đổi quy mô khi cần. Mặc
dù điện toán đám mây hiện đang được ứng dụng rộng rãi ở nhiều nước phát triển trên thế
11
giới bởi lợi ích đáng kể mà nó đem lại, nhưng ở Việt Nam các doanh nghiệp vẫn chưa
thực sự mặn mà với công nghệ này.
Tuy nhiên theo các chuyên gia nhận định, đây chính là giải pháp tối ưu để các
doanh nghiệp nước ta giảm thiểu chi phí cũng như tăng hiệu suất làm việc ở mức tối
đa.Về thực trạng ứng dụng điện toán đám mây ở các doanh nghiệp Việt Nam, có thể rút
ra kết luận như sau: Hiện nay đã có một vài doanh nghiệp lớn tại Việt Nam đưa điện toán
đám mây vào ứng dụng và hiệu suất kinh doanh được cải thiện đáng kể. Tuy nhiên số
lượng là khá ít. Phần lớn vẫn chỉ dừng ở mức quan tâm và tìm hiểu. Nhưng tình hình
đang được cải thiện rõ rệt. Theo khảo sát gần đây của Symantec, một công ty phần mềm
hàng đầu thế giới, hiện có khoảng 46% doanh nghiệp và tổ chức Việt Nam đang triển
khai ứng dụng công nghệ điện toán đám mây và các dự án ảo hóa khác. Hãng bảo mật
Symantec cũng cho rằng các doanh nghiệp Việt Nam có mối quan tâm đặc biệt đến việc
ứng dụng điện toán đám mây và cơ hội mà công nghệ mới này đem tới. Kết quả từ cuộc
khảo sát cho thấy 39% doanh nghiệp trong nước hiện đang sử dụng dịch vụ phần mềm ảo
tư nhân (VPS), trong khi 21% đang ảo hóa máy chủ và cơ sở dữ liệu.
Việc ứng dụng công nghệ điện toán đám mây trong kinh doanh cũng như trong đời
sống là một bước phát triển tất yếu với xu thế thời đại. Được dự đoán đây là làn sóng
công nghệ thứ 3, sẽ tạo ảnh hưởng đến thói quen, tư duy ứng dụng công nghệ hiện nay.
Điều khó khăn là làm thế nào để các doanh nghiệp cũng như cá nhân chấp nhận xu thế
đấy. Đối với phần lớn các doanh nghiệp Việt Nam hiện nay (chủ yếu là doanh nghiệp vừa

và nhỏ), rào cản ngôn ngữ là trở ngại lớn nhất trong quá trình tìm kiếm những công nghệ
trợ giúp cho họ. Chính vì thế, các nhà cung cấp Việt Nam sẽ là cầu nối cho doanh nghiệp
trong nước với xu thế công nghệ thế giới. Nó yêu cầu một trình độ nhất định về công
nghệ, sự am hiểu thói quen, văn hóa của doanh nghiệp Việt Nam, và trên hết là khả năng
đào tạo thị trường gắn với công nghệ. Nhà cung cấp Công nghệ Điện toán đám mây ở
Việt Nam làm tốt cả 3 điều trên, thì thị trường Việt Nam sẽ không chỉ còn là thị trường
tiềm năng nữa. Có nhiều ông lớn tham gia vào thị trường Công nghệ này, đi cùng là
những nhà cung cấp nhỏ hơn, mang lại cho người dùng nhiều lựa chọn để phù hợp với
doanh nghiệp mình.
Công nghệ Điện toán đám mây là xu thế chung của thời đại, việc đưa ra ứng dụng,
phát triển rộng rãi là điều tất yếu, nhất là trong bối cảnh toàn cầu hóa. Nhưng để theo kịp
xu thế, để thị trường phát triển mạnh thì còn nhiều điều cấp thiết. Thay đổi một tư duy
làm việc, một thói quen hoạt động là điều mà các nhà cung cấp phải làm Doanh nghiệp
Việt Nam nhìn ra và chấp nhận.
C. Khó khăn, thách thức:
Điện toán mây được cấu thành từ nhiều thành phần khác nhau. Từ máy chủ, lưu
trữ, mạng được ảo hóa, tiếp theo là các thành phần quản lý Cloud Management. Thành
phần này sẽ quản lý tất cả các tài nguyên được ảo hóa và tạo ra các máy chủ ảo với hệ
12
điều hành, ứng dụng để cung cấp cho khách hàng. Như vậy, điện toán mây là một mô
hình với rất nhiều miếng ghép công nghệ tạo thành. Mỗi một miếng ghép lại tồn tại trong
nó những vấn đề bảo mật và vô hình chung, điện toán mây khi giải bài toán bảo mật tất
yếu phải giải quyết các vấn đề của những miếng ghép trên.
3 nhóm tính chất về bảo mật cần được xem xét, đánh giá một bao gồm sau:
• Tính tin cẩn (Confidentiality): Dữ liệu của khách hàng được bảo vệ như thế
nào? Ngoài khách hàng, dữ liệu đó có thể bị xem trộm bởi chính nhà cung cấp
hay những khách hàng khác không? Các nhà cung cấp có đạt các chứng nhận
của các tổ chức thứ ba đánh giá về bảo mật hay không?
• Tính sẵn sàng (Availability) Ứng dụng cung cấp trên điện toán mây luôn sẵn
sàng hay không? Nếu xảy ra sự cố, thời gian khôi phục dịch vụ mất bao nhiêu

thời gian? Nhà cung cấp dịch vụ có đủ tài chính để cung cấp lâu dài cho khách
hàng? Chế độ bảo hiểmdữ liệu ra sao nếu nhà cung cấp ngừng dịch vụ vì lý do
tài chính?
• Tính an ninh (Security): Ngoài các vấn đề, phòng chống tấn công, nhà cung
cấp dịch vụ có minh bạch cung cấp hiện trạng phục vụ điều tra và thông tin đến
các khách hàng nắm không?
13
III. Google App Engine
A. Khái niệm:
“Google App Engine” (GAE) là một nền tảng hosting bao gồm web server, cơ sở
dữ liệu BigTable and kho lưu trữ file GFS. GAE cho phép bạn viết ứng dụng web dựa
trên cơ sở hạ tầng của Google. Nghĩa là bạn không cần quan tâm là trang web bạn được
lưu trữ như thế nào (kể cả database đi kèm), mà chỉ cần quan tâm đến việc phát triển ứng
dụng theo các API do Google cung cấp.
Với App Engine,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.
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. Hãy nhìn vào Hình 1. Nên nhớ rằng, App Engine được thiết kế để giải quyết
mối quan tâm của chúng ta về sự mở rộng và độ tin cậy. Nó được xây dựng dựa trên khái

niệm có thể mở rộng theo chiều ngang, nghĩa là thay vì ứng dụng của chúng ta sẽ được
chạy trên một phần cứng mạnh mẽ, thì nó có thể chạy trên nhiều phần cứng yếu hơn.
Như vậ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.
GEA bao gồm những tính năng sau :
• Hỗ trợ các công nghệ web động phổ biến
• Cơ sở dữ liệu có khả năng truy vấn, sắp xếp và xử lý theo phiên.
• Tự động mở rộng và cân bằng lưu lượng.
• API để xác thực và gửi mail bằng tài khoản Google.
14
• Một môi trường đầy đủ các tính năng để phát triển ứng dụng nội bộ.
• Task queue API cung cấp cơ chế thực hiện các công việc bên ngoài các yêu cầu
web.
• Task schedule cho phép lên lịch thực hiện công việc tại các thời điểm định trước
với khoảng cách cho trước.
Ngôn ngữ hỗ trợ:
• Php
• Java
• Python
B. Các thành phần chính và dịch vụ:
1. Môi trường thực thi (runtime environment)
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 <tên
bạn>.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.
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).
2. Các file server tĩnh (static file servers)
15
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.
3. 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. Chính vì thế trong các đoạn mã của chúng ta sẽ quan
tâm đến những thứ khác được nêu sau đây.
4. 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.
Ở cái nhìn đầu tiên, chúng ta thấy thực thể có thể gần giống các hàng (row) trong
một bảng trong cơ sở dữ liệu quan hệ. Và mỗi thuộc tính có thể giống với một cột. Tuy
nhiê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. Thứ 2,
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. Một điểm khác nhau nữa giữa thực thể và các hàng (row) là 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 0scn 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.
5. Truy vấn (queries) và Chỉ mục (indexes)
16

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.
6. 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.
7. 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
17
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.
8. 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.
9. 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.
Nếu chúng ta sử dụng Eclipse, chúng ta có thể chạy server cho Java trong bộ tích hợp
debugger, và có thể đặt các breakpoint trong code. Chúng ta cũng có thể sử dụng Eclipse
cho ứng dụng phát triển Python dùng PyDev, một nhánh mở rộng của Eclipse, bao gồm
bộ debugger cho Python.
Mỗi SDK cũng bao gồm một công cụ cho việc tương tác với các ứng dụng chạy trên
App Engine. Chủ yếu là sử dụng cho việc upload code lên App Engine. Chúng ta cũng có
thể sử dụng tool để download các file log từ ứng dụng đang chạy, hoặc quản lý danh mục
ứng dụng.
SDK Python và Java gồm một chức năng mà chúng ta có thể cài đặt trong ứng dụng
cho việc truy cập có thứ tự từ xa một cách an toàn đến ứng dụng. SDK Python bao gồm
18
các công cụ dùng cho việc xử lý dữ liệu lớn, như upload dữ liệu từ file text, và tải lượng
lớn dữ liệu, hoặc sao lưu cho mục đích lưu trữ. SDK cũng có command-line shell của
Python cho việc test, kiểm lỗi và thao tác với dữ liệu. (Các tool này có trong SDK cho
Python, nhưng cũng làm việc với các ứng dụng Java sử dụng phiên bản Java có chức
năng truy cập từ xa). Chúng ta có thể viết đoạn mã script và chương trình sử dụng chức
năng truy cập từ xa cho việc vận chuyển lượng lớn dữ liệu và các biện pháp bảo trì khác.
19
IV. Xây dựng ứng dụng demo:
A. Mục tiêu:
- Xây dựng ứng dụng trò chuyện trên nền tảng đám mây
- Mỗi người dủng có thể tùy nghi tạo nhóm trò chuyện với nhau
B. Phân tích bài toán:
Ứng dụng cần được thực thi trên nền tảng đám mây với mục đích:
- Giảm chi phí thuê server, hosting
- Các vấn đề về bảo mật hạ tầng sẽ được dịch vụ đám mây cung cấp

- Có thể tùy nghi nâng cấp mở rộng dịch vụ khi có lưu lượng truy cập, sử
dụng tài nguyên lớn
Ứng dụng cần được xây dựng trên nền tảng web với các mục đích sau:
- Tăng tính di động, người dùng có thể truy cập tại bất cứ vị trí nào có thể
truy cập Internet
- Tăng tính tiện nghi , người dùng có thể truy cập trên bất cứ nền tảng nào
PC, mobile, …
C. Xây dựng chương trình:
1. Cài đặt Google App Engine:
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
20
Bước 2: Chọn nút Create Application

21
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.
22
Bước 4:
Nhập mã xác nhận của google
23
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.
24
Đây là giao diện chính của ứng dụng chúng ta tạo ra.
25

×