TRƯỜNG ĐẠI HKHOA CÔNG NGH SINH VIÊN NGHIÊN CỨU VÀ TRI ĐIỆN TOÁN I HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ N KHOA CÔNG NGHỆ THÔNG TIN SINH VIÊN: VŨ HOÀNG YẾN U VÀ TRIỂN KHAI ỨNG DỤNG TRÊN NỀ
Trang 1TRƯỜNG ĐẠI H
KHOA CÔNG NGH
SINH VIÊN
NGHIÊN CỨU VÀ TRI
ĐIỆN TOÁN
I HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ N
KHOA CÔNG NGHỆ THÔNG TIN
SINH VIÊN: VŨ HOÀNG YẾN
U VÀ TRIỂN KHAI ỨNG DỤNG TRÊN NỀ
N TOÁN ĐÁM MÂY GAE CỦA GOOGLE
Hà Nội – 2015
NG HÀ NỘI
ỀN TẢNG
A GOOGLE
Trang 2TRƯỜNG ĐẠI H
KHOA CÔNG NGH
SINH VIÊN: V
NGHIÊN CỨU VÀ TRI
ĐIỆN TOÁN
Chuyên ngành: Công ngh
Mã ngành:
I HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ
KHOA CÔNG NGHỆ THÔNG TIN
SINH VIÊN: VŨ HOÀNG YẾN
U VÀ TRIỂN KHAI ỨNG DỤNG TRÊN NỀ
N TOÁN ĐÁM MÂY GAE CỦA GOOGLE
Chuyên ngành: Công nghệ thông tin
NGƯỜI HƯỚNG DẪN: GVC.TS.HÀ M
Hà Nội – 2015
NG HÀ NỘI
ỀN TẢNG
GVC.TS.HÀ MẠNH ĐÀO
Trang 3LỜI CAM ĐOAN
Em xin cam đoan rằng đồ án tốt nghiệp này do chính em thực hiện, không sao chép từ công trình nghiên cứu nào khác, tài liệu sử dụng trong đồ án tốt nghiệp này đều được ghi rõ nguồn gốc
Sinh viên
Trang 4LỜI CẢM ƠN Sau thời gian tìm hiểu đề tài “Nghiên cứu và triển khai ứng dụng trên nền tảng điện toán đám mây GAE của Google”, em đã hoàn thành tiến độ
dự kiến Để đạt được kết quả này, em đã nỗ lực thực hiện và đồng thời cũng nhận được rất nhiều sự giúp đỡ, quan tâm của thầy cô, bạn bè và gia đình
Em xin chân thành cảm ơn giảng viên hướng dẫn: thầy GVC.TS.Hà Mạnh Đào – Trường Đại học Tài Nguyên và Môi Trường Hà Nội đã tận tình
giúp đỡ em hoàn thành đồ án tốt nghiệp này Em xin chân thành cảm ơn các thầy cô và ban lãnh đạo trường Đại học Tài Nguyên và Môi Trường Hà Nội đã nhiệt tình giảng dạy và truyền đạt kiến thức quý báu và bổ ích trong suốt quá trình em học tập tại trường
Vì thời gian có hạn nên không thể tránh khỏi thiếu sót, em rất mong được sự đóng góp ý kiến từ thầy cô và các bạn để có thể giúp hoàn thiện đề tài Em xin chân thành cảm ơn!
Sinh viên thực hiện Đồ án
Trang 5MụC LụC
PHẦN MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Tổng quan về đề tài nghiên cứu 2
3 Mục đích nghiên cứu 3
4 Đối tượng nghiên cứu và phạm vi nghiên cứu 3
5 Phương pháp nghiên cứu 4
6 Những đóng góp của đồ án 4
7 Kết cấu của đồ án 4
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ ĐIỆN TOÁN ĐÁM MÂY 6
1.1 Giới thiệu về điện toán đám mây 6
1.2 Những đặc điểm nổi bật của điện toán đám mây 7
1.3 Mô hình hướng dịch vụ của điện toán đám mây 8
1.4 Cách thức hoạt động của điện toán đám mây 10
1.5 Các mô hình triển khai điện toán đám mây 11
1.5.1 Các đám mây công cộng (Public Cloud) 12
1.5.2 Các đám mây riêng (Private Cloud) 13
1.5.3 Các đám mây lai (Hybrid Cloud) 14
1.5.4 Các đám mây cộng đồng(Community Cloud) 14
1.6 Ưu điểm và nhược điểm của điện toán đám mây 15
1.6.1 Ưu điểm của điện toán đám mây 15
1.6.2 Nh ược điểm của điện toán đám mây 16
CHƯƠNG 2: NỀN TẢNG ĐÁM MÂY GAE CỦA GOOGLE 18
2.1 Giới thiệu về Google App Engine 18
2.2 Kiến trúc hoạt động của Google App Engine 19
2.3 Các thành phần chính của GAE và chức năng của từng thành phần 20
2.3.1 Môi tr ường thực thi (The Runtime Environment) 20
2.3.2 Các file server t ĩnh (static file server) 22
2.3.3 Kho d ữ liệu (Datastore) 23
Trang 62.4 Màn hình quản trị (The Adminstrator Console) 27
2.5 Một số dịch vụ của Google App Engine 28
2.5.1 Url Fetch 28
2.5.2 User 28
2.5.3 Memcache 30
2.5.4 Email 31
2.5.5 Capabilities 31
2.5.6 Datastore 31
2.5.7 Blobstore 34
2.5.8 XMPP 35
2.6 Hạn chế của Google App Engine 35
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG HỎI ĐÁP ONLINE DỰA TRÊN DỊCH VỤ XMPP CỦA GOOGLE APP ENGINE 37
3.1 Phát biểu bài toán 37
3.2 Phân tích và thiết kế hệ thống 38
CHƯƠNG 4: MÔ PHỎNG 43
4.1 Cài đặt hệ thống 43
4.2 Kết quả chạy mô phỏng 47
KẾT LUẬN 50
TÀI LIỆU THAM KHẢO 51
PHỤ LỤC 52
Trang 7DANH SÁCH CHỮ VIẾT TẮT
API Application Programming Interfaces Giao diện lập trình ứng dụng
CPU Central Processing Unit Bộ vi xử lý trung tâm
GAEJ Google App Engine for Java Máy ứng dụng của Google của
Java GAEP Google App Engine for Python Máy ứng dụng Google của
Python
HTTP Hyper Text Transfer Protocol Giao thức truyền siêu văn bản HTTPS Hypertext Transfer Protocol Secure Giao thức truyền siêu văn bản
an toàn IaaS Infrastructure as a Service Hạ tầng như dịch vụ
Trang 8IT Information technology Công nghệ thông tin
URL Uniform Resource Locator Bộ định vị tài nguyên toàn cục XMPP Extensible Messaging and Presence
Protocol
Giao thức nhắn tin mở rộng
Trang 9DANH MỤC CÁC HÌNH ẢNH
Hình 1.1: Mô hình t ổng quan của điện toán đám mây 7
Hình 1.2: Mô hình d ịch vụ điện toán đám mây 8
Hình 1.3: Cách th ức hoạt động của điện toán đám mây 10
Hình 1.4: Các d ạng mô hình triển khai điện toán đám mây 11
Hình 1.5: Mô hình Public Cloud 12
Hình 1.6: Mô Hình Private Cloud 13
Hình 1.7: Mô hình Hybrid cloud 14
Hình 1.8: Mô hình Community cloud 15
Hinh 2.1: Ki ến trúc hoạt động của GAE 19
Hình 2.2: Màn hình thi ết lập cách ứng dụng chứng thực người dùng lúc khởi tạo Application ID 29
Hình 2.3: Màn hình thi ết lập cách ứng dụng chứng thực người dùng tại Admin Console 29
Hình 2.4: Màn hình thi ết lập tuỳ chọn các lưu trữ của datastore 32
Hình 3.1: L ược đồ usecase tổng quát 38
Hình 3.2: L ược đồ usecase cập nhập 39
Hình 3.3: L ược đồ usecase chat 40
Hình 3.4: Bi ểu đồ trạng thái chat giữa người sử dụng và hệ thống 40
Hình 3.5: Bi ểu đồ hoạt động chức năng đăng nhập 41
Hình 3.6: Bi ểu đồ tuần tự 42
Hình 4.1: Màn hình đăng nhập hệ thống GAE 43
Hình 4.2: Màn hình chào m ừng lần đầu tiên tạo ứng dụng GAE 44
Hình 4.3: Màn hình t ạo project 44
Hình 4.4: Màn hình t ạo ứng dụng mới 45
Hình 4.5: Màn hình qu ản lý ứng dụng của GAE 45
Hình 4.6: Màn hình li ệt kê các ứng dụng trên GAE 46
Hình 4.7: Ng ười dùng add contact robothoangyen@appspot.com 47
Hình 4.8: Ng ười dùng gửi tin nhắn đến robothoangyen@appspot.com 48
Hình 4.9: robothoangyen@appspot.com t ự động trả lời câu hỏi 49
Trang 10PHẦN MỞ ĐẦU
1 Tính cấp thiết của đề tài
Ngày nay công nghệ thông tin phát triển rất nhanh chóng, nắm giữ vai trò quan trọng trong việc thúc đấy sự tăng trưởng kinh tế, với sự ra đời của rất nhiều công nghệ mới, các dịch vụ CNTT đáp ứng nhu cầu của người dùng cũng như là các doanh nghiệp, Tuy nhiên, trong giai đoạn suy thoái kinh tế như hiện nay, thì việc ứng dụng một công nghệ hay một dịch vụ CNTT đáp ứng 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 cho doanh nghiệp Để 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 Để giải quyết vấn đề trên thì 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 Khái niệm “điện toán đám mây” đã ra đời trong hoàn cảnh đó và đang dần trở nên quen thuộc đối với các doanh nghiệp, đặc biệt là đối với các doanh nghiệp vừa và nhỏ
Điện toán đám mây (Cloud Computing), 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 (theo Wikipedia) Với một số lợi ích cơ bản như: sử dụng các tài nguyên tính toán động, giảm chi phí, giảm độ phức tạp trong cơ cấu doanh nghiệp, kiến trúc hướng dịch vụ… điện toán đám mây đang tạo cơ hội cho các doanh nghiệp hoạt động hiệu quả, thông minh và tiết kiệm chi phí hơn
Google là một trong những nhà cung cấp dịch vụ điện toán đám mây hiện nay với nền tảng App Engine cho phép người dùng xây dựng và triển khai ứng dụng web Java hay Python trên cơ sở hạ tầng của mình
Trang 11Nhằm đưa ra một cái nhìn tổng quan về nền tảng App Engine của Google, em chọn đề tài “Nghiên cứu và triển khai ứng dụng trên nền tảng App Engine của Google” làm đồ án tốt nghiệp của mình
2 Tổng quan về đề tài nghiên cứu
Hiện nay, việc ứng dụng công nghệ thông tin ở các doanh nghiệp Việt Nam đã trở nên phổ biến, và điện toán đám mây đã bắt đầu có những tín hiệu lạc quan Tuy nhiên hầu hết các doanh nghiệp đang sử dụng các dịch vụ điện toán đám mây hiện nay là các công ty công nghệ hàng đầu trong nước như: FPT, Quang Trung, … còn đại đa số các doanh nghiệp vừa và nhỏ vẫn còn e dè với điện toán đám mây, vẫn chưa hiểu rõ hết về mô hình này nên việc sử dụng các dịch vụ điện toán đám mây vẫn còn hạn chế Giải pháp cho vấn đề này là cung cấp cho người dùng một dịch vụ đám mây miễn phí như App Engine của Google để người dùng có thể trải nghiệm các tiện ích từ điện toán đám mây cũng như có thời gian nhiều hơn để tìm hiểu về những rủi ro về tính an toàn dữ liệu, để từ đó họ có thể mạnh dạn hơn để sử dụng các dịch vụ của điện toán đám mây
Mặc dù không phải là công ty đi đầu trong lĩnh vực điện toán đám mây nhưng Google đã khẳng định được mình là một đối thủ nặng kí trong lĩnh vực này với App Engine Google sẽ đi theo hướng cung cấp các trải nghiệm điện toán đám mây đơn giản hơn so với các nhà cung cấp dịch vụ khác như Amazon, nhưng có mức kiểm soát chặt chẽ và đầy đủ hơn Để triển khai một hệ thống có khả năng đáp ứng các yêu cầu cao với Amazon, người dùng cần phải có trình độ và hiểu biết khá cao về
hệ thống Đôi khi việc cấu hình và viết các ứng dụng theo dõi, tự động mở rộng (Automatic scalability) cho AWS (Amazon Web Services) lại mất nhiều thời gian hơn chính việc viết ứng dụng Với App Engine của Google người dùng sẽ không phải lo lắng về những vấn đề đó nữa GAE hỗ trợ hai ngôn ngữ lập trình Java và Python Bên cạnh đó Google cung cấp cho người dùng khá tốt với hiệu suất làm việc và độ tin cậy cao nhưng giá thành rất ưu đãi như:
Trang 12về hiệu suất làm việc và tính tin cậy cao Với App Engine, chúng ta có được các thế mạnh của Google như cơ chế bảo mật, quyền riêng tư và các chính sách bảo vệ cơ
sở dữ liệu Các ứng dụng cung cấp sẵn của Google sẽ giúp ta dễ dàng quản lý các ứng dụng của mình, dành thời gian tập trung phát triển các chức năng cho người dùng Nếu như trước đây vấn đề bảo mật vốn là rào cản lớn nhất khiến người dùng Việt Nam vốn e dè với điện toán đám mây thì giờ đây với GAE đã khắc phục được yếu điểm đó
chúng ta đạt đến ngưỡng về mức sử dụng – dung lượng lưu trữ 1GB , khoảng 5 triệu lượt xem trong mỗi tháng Và việc cấu hình hệ thống sẽ không đòi hỏi người dùng phải có hiểu biết nhiều về hệ thống vì GAE là một hệ thống tích hợp với đầy đủ công cụ cho một ứng dụng web hiện đại Điều này có thể giúp các doanh nghiệp vừa và nhỏ tiết kiệm được một khoảng chi phí không nhỏ
Em nhận thấy đây là một đề tài hay, bổ ích và vô cùng thực tế, có thể cung cấp cho em nhiều kiến thức về điện toán đám mây phục vụ cho công việc sau này
3 Mục đích nghiên cứu
− Hiểu được cơ sở lí thuyết về điện toán đám mây
− Hiểu được một số vấn đề cơ bản của Google App Engine
− Xây dựng một ứng dụng trên nền tảng App Engine của Google
4 Đối tượng nghiên cứu và phạm vi nghiên cứu
Đối tượng nghiên cứu gồm có:
− Cơ sở lý thuyết về điện toán đám mây
− Nền tảng App Engine của Google
Phạm vi nghiên cứu:
Trang 13− Khái niệm, đặc điểm, mô hình hướng dịch vụ, cách thức hoạt động, mô hình triển khai, ưu điểm, nhược điểm của điện toán đám mây
− Khái niệm, kiến trúc hoạt động, các thành phần chính và chức năng các thành phần, các dịch vụ, hạn chế của Google App Engine
− Xây dựng một chương trình ứng dụng sử dụng dịch vụ XMPP của Google App Engine và lưu trữ trên đám mây của Google
5 Phương pháp nghiên cứu
− Phương pháp nghiên cứu lý thuyết: tiến hành thu nhập các tài liệu, thông tin liên quan đến đề tài
− Tổng hợp và phân tích tích tài liệu để đưa ra cơ sở lý thuyết về điện toán đám mây, nền tảng App Engine của Google
− Tạo một chương trình ứng dụng sử dụng dịch vụ XMPP của Google App Engine
6 Những đóng góp của đồ án
Đồ án hoàn thành sẽ có những đóng góp chủ yếu sau đây:
− Hệ thống hóa những vấn đề lý thuyết cơ bản về điện toán đám mây
− Một số vấn đề cơ bản về nền tảng App Engine của Google
− Cách triển khai một ứng dụng trên nền tảng App Engine của Google
7 Kết cấu của đồ án
Đồ án được chia thành 4 chương như sau:
Chương 1: Cơ sở lý thuyết về điện toán đám mây
Chương này trình bày tổng quan về điện toán đám mây; những đặc điểm nổi bật của điện toán đám mây; mô hình hướng dịch vụ của điện toán
Trang 14đám mây; các mô hình triển khai điện toán đám mây; ưu điểm và nhược điểm của điện toán đám mây
Chương 2: Một số vấn đề cơ bản của Google App Engine
Chương này giới thiệu về Google App Engine; kiến trúc hoạt động
của Google App Engine; các thành phần chính của GAE và chức năng của từng thành phần; màn hình quản trị; một số dịch vụ của Google App Engine; hạn chế của Google App Engine
Chương 3: Xây dựng ứng dụng hỏi đáp online dựa trên dịch vụ XMPP của Google App Engine
Trong chương này giới thiệu về bài toán và đi sâu vào phân tích thiết
kế hệ thống
Chương 4: Mô phỏng
Trong chương này đưa ra phương thức cài đặt hệ thống và giới thiệu một số hình ảnh khi sử dụng hệ thống