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 - Pdf 27

Đạ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 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

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

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ủ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ư
http://www.example.com/ ) 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

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.

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

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:

24
Đây là giao diện chính của ứng dụng chúng ta tạo ra.
25


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status