BÁO CÁO ĐỒ ÁNNGHIÊN CỨU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY. VIẾT MỘT ỨNG DỤNG DEMO DÙNG MỘT TRONG CÁC GÓI THƯ VIỆN SAU: Google App Engine của Google, Window Azure của Microsoft, Sun Cloud của Sun
Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
1,01 MB
Nội dung
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HCM KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN NGHIÊN CỨU CƠNG NGHỆ ĐIỆN TỐN ĐÁM MÂY VIẾT MỘT ỨNG DỤNG DEMO DÙNG MỘT TRONG CÁC GÓI THƯ VIỆN SAU: Google App Engine Google Window Azure Microsoft Sun Cloud Sun Mơn học : Lập Trình Mạng Thành viên nhóm: Phan Vinh Lê Văn Thao Hoàng Thiên Châu Nguyễn Hoài Hiền Dương Ngọc Định Nguyễn Văn Đơ Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING KHÓA HỌC: 2007 – 2012 Mục lục: Chương I: Giới thiệu Tóm tắt hệ thống: .2 Chương I: Giới thiệu Tóm tắt hệ thống: Để giúp người hình dung mơ hình điện tốn đám mây Nhóm chúng tơi viết ứng dụng nhỏ dựa gói thư viện có sẵn google.Về hình thức bạn hình dung ứng dụng giống blog ,facebook,diễn đàn qua thành lập nhóm học tập để bạn trao đổi hay bình ln vấn đề Chương II: Cơ sở lý thuyết 1.Điện toán đám mây gi: Điện toán đám mây mơi trường tính tố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 (tương tự mạng điện) – Theo Wikipedia Mơ hình cơng ty ,doanh nghiệp hướng đến Sử dụng mơ hình doanh nghiệp cần trả phí cho ứng dụng mà họ dung ,mà không cần đầu tư nhiều vào sơ sở hạ tầng, quan tâm nhiều đến cơng nghệ Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING Hình 1: Mọi thứ tập trung vào đám mây Lợi ích cloud computing: • • • • Tính linh động: Người dùng thoải mái lựa chọn dịch vụ phù hợp với nhu cầu mình, bỏ bớt thành phần mà khơng muốn (Thay phải bỏ hàng trăm USD cho Ms office, ta mua riêng lẻ phần trả khoản phí nhỏ sử dụng phần nó) Giảm bớt phí: Người dùng khơng giảm bớt chi phí quyền mà cịn giảm phần lớn chi phí cho việc mua bảo dưỡng máy chủ Việc tập hợp ứng dụng nhiều tổ chức lại chỗ giúp giảm chi phí đầu tư ban đầu, tăng hiệu sử dụng thiết bị cách tối đa Tạo nên độc lập: Người dùng không cịn bị bó hẹp với thiết bị hay vị trí cụ thể Với điện tốn đám mây, phần mềm, liệu truy cập sử dụng từ đâu, thiết bị mà không cần phải quan tâm đến giới hạn phần cứng địa lý (Bạn chơi Call of Duty iPad iPhone mà khơng cần quan tâm đến cấu hình nó) Tăng cường độ tin cậy: Dữ liệu mơ hình điện toán đám mây lưu trữ cách phân tán nhiều cụm máy chủ nhiều vị trí khác Điều giúp tăng độ tin cậy, độ an tồn liệu có cố thảm họa xảy (Hãy tưởng tượng ngày đó, server u q cơng ty tự nhiên bốc cháy với toàn liệu quý giá bên trong, bạn làm gì??) Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING • • Bảo mật: Việc tập trung liệu từ nhiều nguồn khác giúp chuyên gia bảo mật tăng cường khả bảo vệ liệu người dùng, giảm thiểu rủi ro bị ăn cắp toàn liệu (Dữ liệu đặt máy chủ khác → trường hợp hacker công, bạn sẻ bị lộ 1/6 Đây cách chia sẻ rủi ro tổ chức với nhau) Bảo trì dễ dàng: Mọi phần mềm nằm server, lúc này, người dùng không cần lo lắng cập nhật hay sửa lỗi phần mềm Và lập trình viên dễ dàng việc cài đặt, nâng cấp ững dụng Ai ứng dụng Cloud computing: Các ông lớn bắt đầu rục rịch chạy đua đến với điện toán đám mây Những Google, Microsoft, Amazone, Sun phát triển tảng điện toán đám mây riêng Các tảng điện tốn đám mây lớn kể đến bao gồm: • • • • • Google App Engine Google: http://code.google.com/appengine/ Windows Azure Microsoft: http://www.microsoft.com/windowsazure/windowsazure/ Nền tảng điện toán đám mây đời đầu tiên: Amazone Webservice Amazon.com Sun Cloud Sun http://www.sun.com/solutions/cloudcomputing/ Facebook Google App Engine gì: “Google App Engine” (GAE) tảng hosting bao gồm web server, sở liệu BigTable and kho lưu trữ file GFS GAE cho phép bạn viết ứng dụng web dựa sở hạ tầng Google Nghĩa bạn không cần quan tâm trang web bạn 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,Bạn cần tải lên ứng dụng bạn, sẵn sàng để phục vụ người dùng bạn Bạn sử dụng tên miền riêng (chẳng hạn http://www.example.com/ ) thơng qua google apps Hoặc bạn dùng subdomain miễn phí appspot.com GAE cho phép host miễn phí với dung lượng 500 MB lưu trữ cho phép 10 GB băng thông lưu chuyển ngày hay tương đương triệu pageview hàng tháng,Vượt qua mức bạn phải trả phí Dùng GAE, khỏi phải thiết kế Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING database, viết SQL để truy vấn data, map data vô object Chúng ta cần design class GAE tự động lo phần làm việc với database Tóm lại, bạn cần phải nghĩ viết ứng dụng tuyệt vời kêu gọi giới vào dùng Tuy nhiên, mặt trái việc xây dựng ứng dụng GAE bạn phụ thuộc hồn tồn vào cơng nghệ Google khó tách thành ứng dụng độc lập Yahoo hay Microsoft chẳng mua ứng dụng xây dựng tảng đối thủ Còn nhà đầu tư e ngại tài sản công ty bạn đặt hết vào tay người khác, Google Hiện AppEngine hỗ trợ loại ngôn ngữ là: Python Java Một số ngơn ngữ khác PHP chạy cài với chuyển từ PHP sang Java Chương III: Hướng dẫn cài đặt 1.Yêu cầu: - Eclipese hay jcreator - Google plugin cho Eclipese - AppEngine-java-SDK-1.3.8.zip 2.Đăng kí tài khoản Google App Engine: Bước 1:Để triển khai ứng dụng bạn với đám mây Google, bạn cần tài khoản AppEngine Làm tài khoản bạn cần tài khoản email Google Open http://appengine.google.com/ đăng nhập với thông tin tài khoản gmail bạn Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING Bước 2: Chọn nút Create Application Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING Bước 3: Bạn cần phải xác minh tài khoản bạn thông qua số điện thoại hợp lệ.Sau cung cấp số điện thoại bạn, Google nhắn cho bạn mã xác minh qua SMS Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING Bước 4: Nhập mã xác nhận google Đồ án môn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING Bước 5: Tiến hành tạo ứng dụng.Chúng ta phép tạo 10 ứng dụng cho tài khoản gmail Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING Đây giao diện ứng dụng tạo Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 10 3.Tạo project: Các ứng dụng App Engine Java sử dụng chuẩn java servlet để tương tác với môi trường máy chủ web Các file ứng dụng bao gồm: file class biên dịch từ file java, file JAR thư viện, file tĩnh (css,…) file xml cấu hình Tất xếp theo cấu trúc thư mục nằm thư mục WAR a.Cấu trúc thư mục project: Một thư mục với tên Guestbook tạo để chứa dự án Bên thư mục, thư mục mang tên /src để chứa mã nguồn java thư mục /war để chứa file class biên dịch từ file nguồn java Thư mục war xem ứng dụng hoàn chỉnh dùng để up lên Google App Tạo thưc mục sau: Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 11 Guestbook Greeting.java Src (mã nguồn) GuestbookServlet.java PMF.java Guestbook SignGuestbookServlet.java META-INF Jdoconfig.xml (file cấu hình) war Guestbook.jsp WEB-INF Web.xml Appengine-web.xml classes lib Compiled classes JARs for Libraries b.The servlet class: Các ứng dụng App Engine Java sử dụng java servlet API để tương tác với máy chủ web Một HTTP Servlet lớp ứng dụng có khả xử lý phản hồi yêu cầu web Lớp thừa kế lớp javax.servlet.GenericServlet lớp javax.servlet.http.HttpServlet Trong thư mục src/guestbook tạo file có tên GuestbookServlet.java có nội dung: Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 12 package guestbook; import java.io.IOException; import javax.servlet.http.*; import com.google.appengine.api.users.User; import com.google.appengine.api.users.UserService; import com.google.appengine.api.users.UserServiceFactory; public class GuestbookServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { UserService userService = UserServiceFactory.getUserService(); User user = userService.getCurrentUser(); if (user != null) { resp.setContentType("text/plain"); resp.getWriter().println("Hello, " + user.getNickname()); } else { resp.sendRedirect(userService.createLoginURL(req.getRequestURI())); } } } Google App Engine cung cấp số dịch vụ hữu ích dựa sở hạ tầng Google, truy cập ứng dụng cách sử dụng thư viện có SDK Một dịch vụ dịch vụ người dùng, cho phép tích hợp ứng dụng bạn với tài khoản người dùng Google Với dịch vụ người dùng, người dùng bạn sử dụng Google tài khoản mà họ có để đăng nhập vào ứng dụng bạn Trong đoạn code trên, class GuestbookServlet sử dụng Users API để kiểm tra xem người dùng đăng nhập với tài khoản Google Nếu chưa, người dùng chuyển đến hình đăng nhập tài khoản Google userService.createLoginURL( ) trả URL hình đăng nhập c.Signgustbookservlet.java file: Trong src/guestbook/ tạo file SignGuestbookServlet.java có nội dung sau: Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 13 package guestbook; import java.io.IOException; import java.util.Date; import java.util.logging.Logger; import javax.jdo.PersistenceManager; import javax.servlet.http.*; import com.google.appengine.api.users.User; import com.google.appengine.api.users.UserService; import com.google.appengine.api.users.UserServiceFactory; import guestbook.Greeting; import guestbook.PMF; public class SignGuestbookServlet extends HttpServlet { private static final Logger log = Logger.getLogger(SignGuestbookServlet.class.getName()); public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { UserService userService = UserServiceFactory.getUserService(); User user = userService.getCurrentUser(); String content = req.getParameter("content"); Date date = new Date(); Greeting greeting = new Greeting(user, content, date); PersistenceManager pm = PMF.get().getPersistenceManager(); try { pm.makePersistent(greeting); } finally { pm.close(); } resp.sendRedirect("/guestbook.jsp"); } } Đoạn code tạo đối tượng Greeting việc gọi hàm Để lưu đối tượng vào kho liệu, tạo PersistenceManager nhờ vào việc sử dụng PersistenceManagerFactory Khi makePersistent trả về, đối tượng lưu kho liệu d.PMF file: Mỗi yêu cầu sử dụng, kho liệu tạo đối tượng lớp PersistenceManager thong qua thư class PersistenceManagerFactory Trong thư mục src/guestbook tao file PMF.java có nội dung: Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 14 package guestbook; import javax.jdo.JDOHelper; import javax.jdo.PersistenceManagerFactory; public final class PMF { private static final PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory("transactions-optional"); @Persistent User author; private private PMF() {} Chương IV: Kiểm thử nhận xét @Persistent public static PersistenceManagerFactory get() { String content; returnprivate pmfInstance; } @Persistent } 1.Kiểm thử: private Date date; e.Getting.java public Greeting(User author, String content, Date date) { Trong thư mực src/guestbook ta tạo file Greeting.java có nội dung: this.author = author; packagethis.content guestbook;= content; this.date = date; } import java.util.Date; import javax.jdo.annotations.IdGeneratorStrategy; public Long getId() { import javax.jdo.annotations.IdentityType; id; import return javax.jdo.annotations.PersistenceCapable; } import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey; public User getAuthor() { import com.google.appengine.api.users.User; return author; } @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Greeting { public String getContent() { @PrimaryKey return content; @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) } private Long id; public Date getDate() { return date; } public void setAuthor(User author) { this.author = author; } public void setContent(String content) { this.content = content; } public void setDate(Date date) { this.date = date; } } Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 15 Lớp định nghĩa thuộc tính: author, content date Ba trường thích @Persistence để thơng báo cho DataNucleus lưu chúng đối tượng thuộc tính Goolge App f.jdoconfig.xml file: Trong thư mục war/WEB-INF/classes/META-INF/, ta tạo file jdoconfig.xml để cấu hình Goole APP thành tảng try xuất Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 16 Trong war/ ta tạo file guestbook.jsp để làm giao diện cho người sử dụng post bình Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 17 -Test case 1: Nhập sai thông tin SQL server connect Server thông báo, kết nối không thành công h.web.xml file: Khi máy chủ web nhận yêu cầu, xác định servlet class để gọi cách sử dụng file cấu hình gọi "mơ tả triển khai ứng dụng web." File đặt tên web.xml , nằm war/WEB-INF/ thư mục WAR WEB-INF/ web.xml phần đặc tả servlet Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 18 guestbook guestbook.GuestbookServlet guestbook /guestbook sign guestbook.SignGuestbookServlet sign /sign guestbook.jsp i.theappengine-web.xml : App Engine cần tập tin cấu hình bổ sung để tìm cách để triển khai chạy ứng dụng File đặt tên appengine-web.xml , nằm WEB-INF/ với web.xml Nó bao gồm ID đăng ký ứng dụng bạn (Eclipse tạo điều với ID trống để bạn điền vào sau), số phiên ứng dụng bạn, danh sách file phải đối xử file tĩnh (như hình ảnh CSS) file tài nguyên (như JSP liệu ứng dụng khác) Trong thư mục war/WEB-INF/ , tập tin có tên appengine-web.xml có nội dung sau đây: Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 19 1 4.Triển khai ứng dụng : Để upload code file chương trình bạn lên Google App Engine ta dùng tập lệnh có SKD có tên: appcfg.cmd Cần chuẩn bị: Đưa ID vào ứng dụng: Cần ID application đăng ký google để upload ứng dụng, theo cách đăng ký phần trên, ta có ID application : le-thao Ta vào thưc mục war/WEB-INF/appengine-web.xml mở file appengineweb.xml lên, đặt ID application vào thẻ save lại hình vẽ Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 20 Bắt đầu upload: Sau giải nén ổ D ta D:\appengine-java-sdk, mở cmd ta gõ: D: // Chuyển ổ D Gõ: D:\\appengine-java-sdk\bin\appcfg.cmd update D:\guestbook\war hình vẽ Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING để upload 21 Điền mail pass chương trình hỏi, upload thành cơng hình dưới: Chương IV: Hiện thực chương trình u cầu phải có internet bạn truy cập vào địa http://le-thao.appspot.com/ Đồ án môn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 22 Hình giao diện ứng dụng Bạn ko đăng nhập người khác bạn ai.Vì yêu cầu bạn nên đăng nhập trước viết bình luận Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 23 Cứ thành viên vào sau thấy nội dung người viết trước viết phản hồi.về hình thức bạn thấy ứng dụng diễn đàn hay blog … Chắc có lẽ bạn chưa hình dung điểm khác ứng dụng ko Các bạn thiết kế websie hay viết chương trình địi hỏi phải tạo csdl nơi lưu csdl Đối với ứng dụng bạn không cần phải quan tâm đến csdl lưu đâu truy vấn Bởi điều có Google app engine làm Cụ thể nội dung bạn bình luận lưu Google app engine Chương V: Kiểm tra Đánh giá Đạt được: - Đã xây dựng ứng dụng dựa gói thư viện google - ứng dụng nhỏ gọn ,dễ sử dụng Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 24 Chưa đạt được: - Vì điện toán đám mây đề tài lớn nhiều ông lớn google ,intel ,microsoft… nghiên cứu phát triển.cho nên thời gian ngắn chúng em đáp ứng yêu cầu thầy đề ,chứ chưa xây dựng ứng dụng lớn cho công ty hay doanh nghiêp Hướng phát triển: - Điện toán đám mây đề tài hay mẻ huy vọng qua hướng dẫn thầy Chúng em tiếp tục phát triển lên làm đề tài tốt nghiệp The end Đồ án mơn LẬP TRÌNH MẠNG – NETWORK PROGRAMMING 25