TÌM HIỂU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY ỨNG DỤNG VÀO MỘT DỊCH VỤ TRONG THƯ VIỆN GOOGLE APP ENGINE CỦA GOOGLE (NGÔN NGỮ PYTHON)

49 650 1
TÌM HIỂU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY  ỨNG DỤNG VÀO MỘT DỊCH VỤ TRONG THƯ VIỆN  GOOGLE APP ENGINE CỦA GOOGLE (NGÔN NGỮ PYTHON)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC TÂY NGUYÊN KHOA KHTN&CN TRƯỜNG ĐẠI HỌC TÂY NGUYÊN KHOA KHTN&CN CHUYÊN ĐỀ TỐT NGHIỆP CHUYÊN ĐỀ TỐT TÌM HIỂU CÔNG NGHỆ ĐIỆNNGHIỆP TOÁN ĐÁM MÂY ỨNG DỤNG VÀO MỘT DỊCH VỤ TRONG THƯ VIỆN GOOGLE APP ENGINE CỦA GOOGLE TÌM HIỂU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY ỨNG DỤNG VÀO MỘT DỊCH VỤ TRONG THƯ VIỆN GOOGLE APP ENGINE CỦA GOOGLE Sinh viên : Mạc Chu Bảo Nguyên Sinh viên : Bảo Nguyên Chuyên ngành:Mạc CôngChu nghệ thông tin Chuyên ngành: Công nghệ thông tin Khóa học : 2011 - 2015 Người hướng dẫn: CN Phan Thị Đài Trang Đắk Lắk, tháng 05 năm 2015 Đắk Lắk, tháng 05 năm 2015 Đắk Lắk, 01 tháng 05 năm 2015 LỜI CẢM ƠN Để hoàn thành chuyên đề này, em xin bày tỏ lòng biết ơn sâu sắc đến thầy, cô giáo trường Đại học Tây Nguyên nói chung, môn Tin học nói riêng, người tận tình truyền đạt cho em kiến thức năm học vừa qua Em xin chân thành cảm ơn cô Phan Thị Đài Trang nhiệt tình hướng dẫn, bảo cung cấp cho em kiến thức tài liệu quý báu giúp em hoàn thành chuyên đề Cuối cùng, em xin cảm ơn gia đình, bạn bè tạo điều kiện thuận lợi, động viên giúp đỡ em mặt trình thực chuyên đề Do vốn kiến thức hạn chế chưa có đủ kinh nghiệm thực tế nên tránh khỏi thiếu sót, kính mong thầy, cô đóng góp ý kiến để chuyên đề hoàn thiện Em xin chân thành cảm ơn Đắk Lắk, tháng năm 2015 Sinh viên thực Mạc Chu Bảo Nguyên MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC CÁC KÍ HIỆU VIẾT TẮT API CGI CPU GAE GWT HTTP HTML JVM PHP TLS SLA SDK URL VPS XMPP Application Programming Interface: Giao diện lập trình ứng dụng Common Gateway Interface: Phương pháp cho phép giao tiếp server chương trình nhờ định dạng đặc tả thông tin Central Processing Unit: Bộ vi xử lí trung tâm Google App Engine: Một môi trường phát triển ứng dụng dựa công nghệ điện toán đám mây Google Web Toolkit: Bộ công cụ phát triển để xây dựng tối ưu hóa ứng dụng web phức tạp Hyper Text Transfer Protocol: Giao thức truyền tải siêu văn HyperText Markup Language: Ngôn ngữ đánh dấu siêu văn Java Virtual Machine: Môi trường máy ảo để thực thi mã java bytecode Internet Protocol: Giao thức Internet Transport Layer Security: Bảo mật tầng giao vận Service Level Agreement: Cam kết dịch vụ Software Development Kit: Bộ công cụ phát triển phần mềm Universal Resource Locator: Tham chiếu tới tài nguyên Internet Virtual Private Server: Máy chủ ảo Extensible Messaging and Presence Protocol: Giao thức mở dựa tảng XML MỞ ĐẦU Đặt vấn đề Ngày nay, máy tính trở thành phần tất yếu sống Khi nhu cầu sử dụng máy tính tăng nguồn tài nguyên cần cung cấp tăng Trước đây, với vấn đề lớn sở hạ tầng công nghệ thông tin máy hỏng, treo ổ cứng, lỗi phần mềm, v.v… thật nghiêm trọng cho doanh nghiệp Trước tình hình đó, điện toán đám mây đời giải pháp tối ưu cấp thiết Điện toán đám mây dịch chuyển cách mạng việc tính toán chuyển giao từ máy tính cá nhân hay máy chủ ứng dụng doanh nghiệp đến đám mây máy tính Đám mây mạng máy tính, hình tượng để đến tập máy chủ ảo hóa, cung cấp nguồn tài nguyên khác cho khách hàng Người sử dụng hệ thống cần quan tâm tới dịch vụ yêu cầu Cái chi tiết bên hệ thống người dùng không cần phải biết Các liệu dịch vụ cung cấp nằm trung tâm liệu đám mây có khả mở rộng lớn, truy cập đâu, từ thiết bị kết nối giới Điện toán đám mây sử dụng lĩnh vực khác web hosting, lập trình song song, dựng hình đồ họa, mô hình tài (IBM Clouds), phương pháp duyệt tìm kiếm web (web spider), phân tích gen (Amazon Clouds), v.v … Từ thực tế trên, em thực đề tài “TÌM HIỂU CÔNG NGHỆ ĐIỆN ĐOÁN ĐÁM MÂY ỨNG DỤNG VÀO MỘT THƯ VIỆN TRONG GOOGLE APP ENGINE CỦA GOOGLE” để làm rõ công nghệ Mục tiêu nghiên cứu - Tìm hiểu công nghệ điện toán đám mây - Ứng dụng vào Google App Engine Tổng quan/ sở lí luận Điện toán đám mây (Cloud Computing, hay biết đến với tên gọi “Điện toán máy chủ ảo”) môi trường tính toán dựa internet mà tất phần mềm, liệu, tài nguyên cung cấp cho máy tính thiết bị khác theo nhu cầu Thuật ngữ “đám mây” lối nói ẩn dụ mạng Internet liên tưởng độ phức tạp sở hạ tầng chứa Nói cách đơn giản nhất, ứng dụng điện toán đám mây ứng dụng trực tuyến Internet Trình duyệt nơi ứng dụng hữu vận hành liệu lưu trữ xử lý máy chủ nhà cung cấp ứng dụng Một số tảng điện toán đám mây nay: Google App Engine, Windows Azure, Amazone Webservice, Sun Cloud, Facebook, … Google App Engine (App Engine hay GAE) tảng điện toán đám mây Google để phát triển lưu trữ ứng dụng web trung tâm liệu Google quản lý (google-managed data centers) Bản beta giới thiệu lần vào ngày tháng năm 2008 “Google App Engine” tảng hosting bao gồm web server, sở liệu BigTable and kho lưu trữ file GFS Google App Engine cho phép ta viết ứng dụng web dựa sở hạ tầng Google Ứng dụng App Engine dễ xây dựng, dễ bảo trì, dễ dàng để mở rộng quy mô Khi nói đến “ứng dụng web”, muốn nói tới ứng dụng hay dịch vụ truy cập trang web, thường thông qua trình duyệt web: trang web mua bán, mạng xã hội, … App Engine phục vụ trang web truyền thống xử lý văn hay hình ảnh thiết kế dành cho thời gian thực Với App Engine, ta không cần quan tâm trang web lưu trữ (kể database kèm), mà cần quan tâm đến việc phát triển ứng dụng theo API Google cung cấp Với App Engine, không cần máy chủ để trì: ta cần tải ứng dụng mình, sẵn sàng để phục vụ người dùng Người sử dụng sử dụng tên miền riêng thông qua Google Apps cung cấp, dùng sub-domain miễn phí appspot.com Thực ra, GAE thiết kế để lưu trữ ứng dụng phục vụ nhiều người dùng cách đồng thời Khi ứng dụng phục vụ nhiều người dùng cách đồng thời mà không làm giảm hiệu suất, gọi co giãn (scales) Những ứng dụng viết cho App Engine co giãn cách tự động Càng nhiều người sử dụng chương trình, App Engine tạo nhiều tài nguyên cho ứng dụng quản lý chúng Chính thân ứng dụng không cần phải biết đến tài nguyên mà sử dụng Không server cung cấp dịch vụ lưu trữ thông thường hay server có chức tự quản lý, với Google App Engine, phải trả tiền cho tài nguyên mà sử dụng Những tài nguyên đo gigabyte lệ phí hàng tháng hay lệ phí để thay đổi diện mạo trang web Hóa đơn toán nguồn tài nguyên bao gồm CPU sử dụng, lưu trữ hàng tháng, băng thông vào (incoming and outgoing bandwidth), số tài nguyên khác dịch vụ App Engine Để giúp làm quen với GAE, lập trình viên có khoảng GB lưu trữ, lượng tài nguyên miễn phí đủ để chạy ứng dụng nhỏ với băng thông thấp Google dự toán với nguồn tài nguyên miễn phí, ứng dụng đạt tới triệu lượt truy cập tháng Trong phạm vi đề tài này, em trình bày cách tổng quát vấn đề cần quan tâm hệ thống Google App Engine như: kiến trúc, thành phần, bước để xây dựng ứng dụng Google App Engine Đồng thời, đề tài minh họa ứng dụng cụ thể triển khai Google App Engine Nội dung nghiên cứu Chương 1: Tổng quan điện toán đám mây 1.1 Khái niệm 1.2 Các đặc điểm điện toán đám mây 1.3 Ưu nhược điểm điện toán đám mây 1.4 Ứng dụng điện toán đám mây Chương 2: Tìm hiểu Google App Engine 2.1 Kiến trúc hoạt động 2.2 Các thành phần chức 2.3 Hạn chế Google App Engine Chương 3: Xây dựng triển khai ứng dụng 3.1 Chuẩn bị 3.2 Đăng kí tài khoản Google App Engine 3.3 Ứng dụng minh họa 3.4 Các file cài đặt project 3.5 Triển khai ứng dụng 3.6 Upload ứng dụng lên Google App Engine 3.7 Sử dụng ứng dụng Phương pháp nghiên cứu - Nghiên cứu tài liệu tham khảo - Phương pháp thu thập thông tin - Nghiên cứu hướng dẫn giáo viên NỘI DUNG CHƯƠNG 1: TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 1.1 Khái niệm Điện toán đám mây (Cloud Computing, hay biết đến với tên gọi “Điện toán máy chủ ảo”) môi trường tính toán dựa internet mà tất phần mềm, liệu, tài nguyên cung cấp cho máy tính thiết bị khác theo nhu cầu Thuật ngữ “đám mây” lối nói ẩn dụ mạng Internet liên tưởng độ phức tạp sở hạ tầng chứa Nói cách đơn giản nhất, ứng dụng điện toán đám mây ứng dụng trực tuyến Internet Trình duyệt nơi ứng dụng hữu vận hành liệu lưu trữ xử lý máy chủ nhà cung cấp ứng dụng 1.2 Các đặc điểm điện toán đám mây Một định nghĩa cho điện toán đám mây đưa mô hình máy tính mà liệu dịch vụ đặt trung tâm liệu mở rộng đám mây truy cập từ thiết bị qua internet Đám mây điện toán cách để cung cấp dịch vụ khác máy ảo cấp phát tập hợp máy tính vật lý lớn nằm đám mây Điện toán đám mây trở nên tập tmng suy nghĩ mà công nghệ thông tin luôn mong muốn - cách để tăng lực thêm khả khác vào thiết lập mà không cần đầu tư vào sở hạ tầng mới, đào tạo nhân viên cấp giấy phép phần mềm Và đám mây điện toán cung cấp giải pháp tốt Chúng ta có khả tính toán lớn khả lưu trữ môi trường phân tán đám mây Điện toán đám mây phải làm để khai thác khả tài nguyên làm cho tài nguyên sẵn sàng thực thể mà thay đổi để đáp ứng nhu cầu người dùng Cơ sở Điện toán đám mây tạo tập máy chủ ảo rộng lớn khách hàng truy cập chúng Bất thiết bị truy cập web sử dụng để truy cập vào nguồn tài nguyên thông qua máy chủ ảo Căn vào tính toán nhu cầu khách hàng, sở hạ tầng đuợc phân bổ cho khách hàng tăng lên hạ xuống Nhìn từ quan điểm kinh doanh, điện toán đám mây phương pháp để giải khả mở rộng mối quan tâm cho ứng dụng quy mô lớn, bao gồm việc chi phí Bởi tài nguyên phân bổ cho khách hàng dựa nhu cầu khác khách hàng thực mà không phiền phức nào, nguyên cần thiết Một thành tựu quan trọng điện toán đám mây khái quát xử lý liệu lớn gấp 1000 lần không thiết phải thực với phức tạp 1000 lần thông thường Khi số lượng liệu tăng, đám mây dịch vụ điện toán sử dụng đế quản lý việc tải cách hiệu làm cho công việc xử lý dễ dàng Trong thời đại máy chủ doanh nghiệp máy tính cá nhân, phần cứng tiêu chuẩn cho khả xử lý, chúng phụ thuộc vào cấu hình phần cứng máy chủ Nhưng với đời đám mây máy tính, hàng hóa thay đổi với chu kỳ byte - tức dịch vụ điện toán đám mây, người dùng tính dựa số lượng chu trình thực số lượng byte dịch chuyển Các phần cứng máy mà ứng dụng chạy ấn khỏi người sử dụng Số lượng phần cứng cần thiết cho tính toán thực trình quản lý nói cách khái quát khách hàng tính chi phí dựa cách ứng dụng sử dụng nguồn tài nguyên 10 Hoàn thành Upload ứng dụng lên Google App Engine: Hình 3.20: Upload ứng dụng lên Google App Engine thành công 3.7 Sử dụng ứng dụng Khi ứng dụng sẵn sàng hosting Google App Egine, người dùng chạy ứng dụng cách vào trình duyệt khởi chạy địa Application Trong tập này, URL Application dùng nguyen-cntin-k11.appspot.com Ta chạy ứng dụng hình đây: Hình 3.21: Giao diện ứng dụng chạy qua Internet URL 35 Khi chạy ứng dụng thông qua Internet, click vào Sign Guestbook để đăng nhập, hệ thống nhắc ta đăng nhập vào Guestbook tài khoản Gmail Hình 3.22: Đăng nhập ứng dụng Gmail 36 Để quản lý ứng dụng: ta đăng nhập vào trang https://console.developers.google.com Vào phần Overview để xem biểu đồ hoạt động theo thời gian Hình 3.23: Biểu đồ hoạt động ứng dụng 37 Phân quyền cho ứng dụng: Ta vào phần Pemissions Hình 3.24: Phân quyền cho ứng dụng 38 KẾT LUẬN Để hoàn thành khoá luận này, em xin bày tỏ lòng biết ơn sâu sắc đến cô Phan Thị Đài Trang bạn nhóm giúp đỡ em trình hoàn thành chuyên đề Chuyên đề nêu vấn đề Điện toán đám mây, tạo sử dụng ứng dụng GAE Chuyên đề đạt số thành sau: - Tìm hiểu số thành phần quan trọng điện toán đám mây - Thử nghiệm ứng dụng thực tế máy tính Tuy nhiên hạn chế vốn kiến thức, kinh nghiệm thực tế nên tồn nhiều thiếu sót: - Thử nghiệm chưa thực thành công chưa có điều kiện tạo ứng dụng hoạt động hệ thống lớn Cuối em xin lần gửi lời cảm ơn đến cô Phan Thị Đài Trang, giảng viên ngành Công nghệ thông tin, Đại học Tây Nguyên, bạn nhóm chuyên đề người thân giúp đỡ em nhiều thời gian thực chuyên đề 39 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Đỗ Thị Phương (2012), “Điện toán đám mây Google ứng dụng xây dựng hệ thống quản lý dịch vụ”, Trường Đại học Quốc gia Hà Nội; Trường Đại học Công nghệ Tiếng Anh [2] https://cloud.google.com/appengine/docs (Google App Engine) 40 PHỤ LỤC File guestbook2_wepapp.py from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app class MainPage(webapp.RequestHandler): def get(self): self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('Hello, webapp World!') application = webapp.WSGIApplication( [('/', MainPage)],debug=True) def main(): run_wsgi_app(application) if name == " main ": main() File guestbook3_users.py from google.appengine.api import users from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app class MainPage(webapp.RequestHandler): def get(self): user = users.get_current_user() if user: self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('Hello, ' + user.nickname()) else: 41 self.redirect(users.create_login_url(self.request.uri)) application = webapp.WSGIApplication( [('/', MainPage)], debug=True) def main(): run_wsgi_app(application) if name == " main ": main() File guestbook4_forms.py import cgi from google.appengine.api import users from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app class MainPage(webapp.RequestHandler): def get(self): self.response.out.write(""" """) class Guestbook(webapp.RequestHandler): 42 def post(self): self.response.out.write('You wrote:') self.response.out.write(cgi.escape(self.request.get('content'))) self.response.out.write('') application = webapp.WSGIApplication( [('/', MainPage), ('/sign', Guestbook)], debug=True) def main(): run_wsgi_app(application) if name == " main ": main() File guestbook5_datastore.py import cgi from google.appengine.api import users from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app from google.appengine.ext import db class Greeting(db.Model): author = db.UserProperty() content = db.StringProperty(multiline=True) date = db.DateTimeProperty(auto_now_add=True) class MainPage(webapp.RequestHandler): def get(self): self.response.out.write('') 43 greetings = db.GqlQuery("SELECT * FROM Greeting ORDER BY date DESC LIMIT 10") for greeting in greetings: if greeting.author: self.response.out.write('%s wrote:' % greeting.author.nickname()) else: self.response.out.write('An anonymous person wrote:') self.response.out.write('%s' % cgi.escape(greeting.content)) # Write the submission form and the footer of the page self.response.out.write(""" """) class Guestbook(webapp.RequestHandler): def post(self): greeting = Greeting() if users.get_current_user(): greeting.author = users.get_current_user() greeting.content = self.request.get('content') greeting.put() 44 self.redirect('/') application = webapp.WSGIApplication( [('/', MainPage), ('/sign', Guestbook)], debug=True) def main(): run_wsgi_app(application) if name == " main ": main() File guestbook6_template.py import cgi import os from google.appengine.api import users from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app from google.appengine.ext import db from google.appengine.ext.webapp import template class Greeting(db.Model): author = db.UserProperty() content = db.StringProperty(multiline=True) date = db.DateTimeProperty(auto_now_add=True) class MainPage(webapp.RequestHandler): def get(self): 45 greetings_query = Greeting.all().order('-date') greetings = greetings_query.fetch(10) if users.get_current_user(): url = users.create_logout_url(self.request.uri) url_linktext = 'Logout' else: url = users.create_login_url(self.request.uri) url_linktext = 'Login' template_values = { 'greetings': greetings, 'url': url, 'url_linktext': url_linktext, } path = os.path.join(os.path.dirname( file ), 'index.html') self.response.out.write(template.render(path, template_values)) class Guestbook(webapp.RequestHandler): def post(self): greeting = Greeting() if users.get_current_user(): greeting.author = users.get_current_user() greeting.content = self.request.get('content') greeting.put() self.redirect('/') application = webapp.WSGIApplication( 46 [('/', MainPage), ('/sign', Guestbook)], debug=True) def main(): run_wsgi_app(application) if name == " main ": main() File Index.html {% for greeting in greetings %} {% if greeting.author %} {{ greeting.author.nickname }} wrote: {% else %} An anonymous person wrote: {% endif %} {{ greeting.content|escape }} {% endfor %} 47 {{ url_linktext }} File index.yaml indexes: - kind: Greeting properties: - name: date direction: desc File app.yaml application: nguyen-cntin-k11 version: runtime: python api_version: handlers: - url: /stylesheets static_dir: stylesheets 10 File main.css body { font-family: Verdana, Helvetica, sans-serif; background-color: #DDDDDD;} Ý KIẾN CỦA NGƯỜI HƯỚNG DẪN 48 Đánh dấu kí tên vào ý kiến chọn lựa sau: X Ký tên Đồng ý thông qua báo cáo Không đồng ý thông qua báo cáo Đắk Lắk, ngày… tháng… Năm 2015 NGƯỜI HƯỚNG DẪN (Ký ghi rõ họ tên) CN PHAN THỊ ĐÀI TRANG 49

Ngày đăng: 17/09/2016, 08:37

Mục lục

  • DANH MỤC CÁC KÍ HIỆU VIẾT TẮT

  • 1.2.2. Nhiều người sử dụng

  • 1.2.3. Khả năng mở rộng tuyến tính

  • 1.2.5. Điều khiển SLA(Service level agreement)

  • 1.2.6. Khả năng ảo hóa

  • 1.3.3. Những khó khăn thách thức

  • 1.4. Ứng dụng của điện toán đám mây

  • CHƯƠNG 2: TÌM HIỂU VỀ GOOGLE APP ENGINE

    • 2.1. Kiến trúc hoạt động

    • 2.2. Các thành phần chính và chức năng

      • 2.2.1. Môi trường thực thi (runtime environment)

      • 2.2.2. Các file server tĩnh (static file servers)

      • 2.2.3. Kho dữ liệu (datastore)

      • 2.2.4. Thực thể (entities) và Thuộc tính (properties)

      • 2.2.5. Truy vấn (queries) và Chỉ mục (indexes)

      • 2.2.6. Phiên giao dịch (transaction)

      • 2.2.7. Các dịch vụ (services)

      • 2.2.8. Tài khoản Google (google accounts)

      • 2.2.9. Các công cụ lập trình (programming tools)

      • 2.3. Hạn chế của Google App Engine

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

      • 3.3. Ứng dụng minh họa

Tài liệu cùng người dùng

Tài liệu liên quan