Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 38 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
38
Dung lượng
2,23 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Bài thu hoạch môn học TÍNH TOÁN LƯỚI Đề tài NGHIÊN CỨU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY. XÂY DỰNG MỘT ỨNG DỤNG DEMO DÙNG TRONG GÓI THƯ VIỆN GOOGLE APP ENGINE CỦA GOOGLE Giáo viên hướng dẫn: TS. NGUYỄN PHI KHỨ Học viên thực hiện: TRẦN MINH HÙNG MSHV: CH1101087 CH-K6 TPHCM tháng 7/2013 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI MỤC LỤC LỜI NÓI ĐẦU 4 CHƯƠNG I: CÁC KHÁI NIỆM 6 1. Khái niệm điện toán đám mây: 6 2. Lợi ích cloud computing: 6 3. Google App Engine là gì: 7 4. Sự khác nhau giữa Cloud Computing và Grid Computing 8 CHƯƠNG II CLOUD COMPUTING: LỢI ÍCH VÀ KHÓ KHĂN 10 1. Cloud có phải là giải pháp tối ưu cho các doanh nghiệp? 10 2. Những thuận lợi và khó khăn của cloud computing 10 1. Tính sẵn sàng 10 2. Data lock-in 11 3. Bảo mật và kiểm tra dữ liệu 12 4. Việc gây ra thắc cổ trai trong việc truyền dữ liệu 13 5. Khó tiên đoán trong hiệu suất thực thi của máy tính 13 6. Đáp ứng nhu cầu khả năng lưu trữ của người dùng 14 7. Khả năng tự co giãn của hệ thống 14 8. Bản quyền phần mềm 15 9. Lợi ích của Cloud Computing đối với doanh nghiệp[4] 16 10. Giảm chi phí 16 11. Sử dụng tài nguyên hiệu quả hơn 17 12. Tính linh hoạt 18 CHƯƠNG III: HƯỚNG DẪN CÀI ĐẶT 19 1. Yêu cầu: 19 2. Đăng kí tài khoản Google App Engine: 19 3. Tạo một project: 22 Học viện thực hiện: Trần Minh Hùng – CH1101087 2 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI 4. Triển khai ứng dụng: 32 CHƯƠNG IV: HIỆN THỰC CHƯƠNG TRÌNH 35 KẾT LUẬN 37 TÀI LIỆU THAM KHẢO 38 Học viện thực hiện: Trần Minh Hùng – CH1101087 3 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI LỜI NÓI ĐẦU 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. Thuật ngữ “cloud computing” ra đời bắt nguồn từ một trong những hoàn cảnh như vậy. Thuật ngữ “cloud computing” còn được bắt nguồn từ ý tưởng đưa tất cả mọi thứ như dữ liệu, phần mềm, tính toán, … lên trên mạng Internet. Chúng ta sẽ không còn trông thấy các máy PC, máy chủ của riêng các doanh nghiệp để lưu trữ dữ liệu, phần mềm nữa mà chỉ còn một số các “máy chủ ảo” tập trung ở trên mạng. Các “máy chủ ảo” sẽ cung cấp các dịch vụ giúp cho doanh nghiệp có thể quản lý dữ liệu dễ dàng hơn, họ sẽ chỉ trả chi phí cho lượng sử dụng dịch vụ của họ, mà không cần phải đầu tư nhiều vào cơ sở hạ tầng cũng như quan tâm nhiều đến công nghệ. Xu hướng này sẽ giúp nhiều cho các công ty, doanh nghiệp vừa và nhỏ mà không có cơ sở hạ tầng mạng, máy chủ để lưu trữ, quản lý dữ liệu tốt. Vậy “cloud computing” là gì ? Nó có thể giải quyết bài toán trên như thế nào và có những đặc điểm nổi bật gì ? Việc nghiên cứu, tìm hiểu về cloud computing là hết sức cần thiết để chúng ta có thể ứng dụng trong công việc cụ Học viện thực hiện: Trần Minh Hùng – CH1101087 4 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI thể của từng các nhân, tổ chức hay doanh nghiệp. Đó cũng là lý do mà chúng tôi thực hiện bài thu hoạch này. Chúng tôi xin cảm ơn Thầy - TS. Nguyễn Phi Khứ, người đã tận tâm truyền đạt những kiến thức nền tảng cơ bản về môn học “Tính toán lưới”, đã cung cấp cho chúng tôi các kiến thức và công cụ hết sức bổ ích. Do kiến thức còn hạn hẹp, bài thu hoạch có thể có những sai sót nhất định, mong thầy và chúng ta góp ý để bài thu hoạch ngày càng hoàn thiện hơn. Chúng tôi xin tỏ lòng biết ơn sâu xa! Học viên thực hiện đề tài Trần Minh Hùng Học viện thực hiện: Trần Minh Hùng – CH1101087 5 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI CHƯƠNG I: CÁC KHÁI NIỆM 1. Khái niệm điện toán đám mây: Điện toán đám mây là môi trường tính toán dựa trên internet mà ở đó tất cả phần mềm, dữ liệu, tài nguyên được cung cấp cho máy tính và các thiết bị khác theo nhu cầu (tương tự như mạng điện) – Theo Wikipedia Mô hình này đã và đang được các công ty ,doanh nghiệp hướng đến .Sử dụng mô hình này các doanh nghiệp chỉ cần trả phí cho những ứng dụng mà họ dung ,mà không cần đầu tư nhiều vào sơ sở hạ tầng, cũng như quan tâm nhiều đến công nghệ . Mọi thứ đều tập trung vào đám mây 2. Lợi ích cloud computing: • Tính linh động: Người dùng có thể thoải mái lựa chọn các dịch vụ phù hợp với nhu cầu của mình, cũng như có thể bỏ bớt những thành phần mà mình không muốn. (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ó) Học viện thực hiện: Trần Minh Hùng – CH1101087 6 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI • 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ý. (Chúng ta có thể chơi Call of Duty 6 trên iPad hoặc iPhone mà không cần quan tâm đến cấu hình của nó) • 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. (Hãy tưởng tượng 1 ngày nào đó, server yêu quý của công ty tự nhiên bốc cháy với toàn bộ dữ liệu quý giá bên trong, chúng ta sẽ làm gì??) • 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. (Dữ liệu được đặt tại 6 máy chủ khác nhau → trong trường hợp hacker tấn công, chúng ta cũng sẻ chỉ bị lộ 1/6. Đây là 1 cách chia sẻ rủi ro giữa các tổ chức với nhau) • 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. 3. Google App Engine là gì: “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 chúng ta viết ứng dụng web dựa trên cơ sở hạ tầng của Google. Nghĩa là chúng ta không cần quan tâm là trang web chúng ta đượ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,Chúng ta chỉ cần tải lên các ứng dụng của chúng ta, và nó sẵn sàng để phục vụ người dùng của chúng ta. Học viện thực hiện: Trần Minh Hùng – CH1101087 7 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI Chúng ta 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 chúng ta 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 chúng ta 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. Tóm lại, giờ đây chúng ta chỉ cần phải nghĩ ra và viết những ứng dụng tuyệt vời nhất rồi kêu gọi cả thế giới vào dùng. Tuy nhiên, mặt trái của việc xây dựng ứng dụng trên GAE là chúng ta sẽ phụ thuộc hoàn toàn vào các công nghệ của Google và rất khó có thể tách ra thành một ứng dụng độc lập. Yahoo hay Microsoft sẽ chẳng bao giờ mua một ứng dụng xây dựng trên nền tảng của đối thủ. Còn các nhà đầu tư cũng rất e ngại khi tài sản của công ty chúng ta đặt hết vào tay người khác, dù cho đó là Google. Hiện AppEngine hỗ trợ 2 loại ngôn ngữ là: Python và Java. Một số ngôn ngữ khác như PHP cũng có thể chạy được nếu cài cùng với bộ chuyển từ PHP sang Java. 4. Sự khác nhau giữa Cloud Computing và Grid Computing Sự khác nhau giữa Grid Computing và Cloud Computing Grid computing Cloud computing Sức mạnh tính toán Tính toán mạnh hơn Grid Computing; sử dụng khả năng tính toán của internet Sử dụng khả năng tính toán trong nội bộ của Cloud. Lưu trữ Lưu trữ nhiều hơn Cloud Computing; dùng các giao thức để tìm kiếm các tài nguyên thích hợp trên mạng để lưu trữ. Khả năng lưu trữ ít hơn Grid Computing; dùng các data center trong việc lưu trữ Tốc độ truyền dữ liệu (trao đổi các resource trong lúc thực thi) Tốc độ chậm hơn Cloud Computing; tốc độ của đưởng truyền sử dụng Nhanh hơn Grid Computing, việc trao đổi resource thường Học viện thực hiện: Trần Minh Hùng – CH1101087 8 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI đường truyền internet, tốc độ thường là mega byte. thực hiện bằng đường truyền nội bộ, được xây dựng để kết nối giữa các data center. Tốc độ có thể lên đến hàng giga byte. Khả năng mở rộng Có khả năng mở rộng. Việc mở rộng được thực hiện trên đường truyền internet (khi có như cầu sử dụng thêm resource thì hệ thống sẽ tìm trên mạng xem hiện có resource nào đáp ứng nhu cầu của mình phù hợp không). Có khả năng mở rộng, co lại dễ dàng và nhanh (theo nhu cầu sử dụng). Ví dụ: nếu trong một thời điểm đang có 10 máy nhưng muốn có 20 máy thì Cloud Computing có thể cung cấp, hoặc muốn giảm xuống chỉ sử dụng còn 5 máy; Cloud hổ trợ cho việc này nhanh chóng. Phạm vi Chủ yếu hướng tới khoa học. Chủ yếu hướng tới thương mại, quan tâm đến việc phục vụ nhu cầu của khách hàng thông qua việc cung cấp các dịch vụ theo nhu cầu của khách hàng. Resource Việc sử dụng resource thông qua việc tìm kiếm các resource trên internet, người dùng không thể cấu hình tài nguyên theo ý muốn của người dùng. Cung cấp resource theo dạng unified resource, người dùng được phép cấu hình resource theo nhu cầu của người sử dụng. Bảng so sánh Cloud Computing và Gird Computing Học viện thực hiện: Trần Minh Hùng – CH1101087 9 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI CHƯƠNG II CLOUD COMPUTING: LỢI ÍCH VÀ KHÓ KHĂN 1. Cloud có phải là giải pháp tối ưu cho các doanh nghiệp? Điều đó phụ thuộc vào quy mô của công ty, và tính chất kinh doanh mà doanh nghiệp đó theo đuổi. Đối với các doanh nghiệp hoạt động mà dữ liệu của công ty mang tính chất là sống còn trong việc kinh doanh thì công ty đó sẽ xây dựng nên một hệ thống riêng trong công ty của mình vận hành như hệ thống lưu trữ của các ngân hàng. Nhưng đối với các doanh nghiệp nhỏ thì Cloud có lẽ là giải pháp tối ưu do họ không phải đầu tư vào cơ sở hạ tầng và cũng không cần phải có phòng để quản lý, bảo trì vận hành hệ thống (như vấn đề về việc thay thế các thiết bị lưu trữ, phải bảo đảm nhiệt độ của hệ thống làm việc tốt, ngoài ra còn vấn đề về năng lượng tiêu thụ của hệ thống), và dữ liệu của công ty thì có lẽ không quan trọng lắm. Ngoài ra với các dịch vụ PaaS, thì vấn đề phụ thuộc vào nền tảng của nhà cung cấp dịch vụ là rất nhiều. Ví dụ với Google và dịch vụ Google App Engine thì khi khách hành phát triển một ứng dụng trên đó thì sẽ phụ thuộc vào Google, vì hiện nay vấn đề API chưa được chuẩn hóa giữa các nhà cung cấp dịch vụ theo dạng này trong Cloud Computing. Vì vậy nếu hệ thống của Google có trục trặc hay có vấn đề khác. Nếu những điều đó làm ứng dụng của mình không chạy được thì ứng dụng của mình cũng không thể chạy ở nơi khác vì nền tảng bên dưới mà nhà cung cấp dịch vụ đã che dấu và cũng không phải là mã nguồn mở. 2. Những thuận lợi và khó khăn của cloud computing 1. Tính sẵn sàng Hiện nay, việc sử dụng các dịch vụ của cloud computing làm cho người sử dụng lo lắng đến tính sẵn sàng của dịch vụ mà họ sử dụng. Nên đây là một lý do có thể làm cho người sử dụng ngại sử dụng các dịch vụ của Cloud Computing. Nhưng hiện tại, những người sử dụng dịch vụ của Cloud Computing có thể an tâm về chất lượng dịch vụ. Ví dụ như trong SaaS có dịch vụ tìm kiếm của Google, hiện tại khi người dùng truy cập vào trang web sử Học viện thực hiện: Trần Minh Hùng – CH1101087 10 [...]... } Google App Engine cung cấp một số dịch vụ hữu ích dựa trên cơ sở hạ tầng Google, có thể truy cập bởi các ứng dụng bằng cách sử dụng thư viện có trong SDK Một trong những dịch vụ là dịch vụ người dùng, cho phép tích hợp các ứng dụng của chúng ta với tài khoản người dùng Google Với dịch vụ người dùng, người dùng của chúng ta có thể sử dụng Google các tài khoản mà họ đã có để đăng nhập vào ứng dụng của. .. xác nhận của google Bước 5: Học viện thực hiện: Trần Minh Hùng – CH1101087 20 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI 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 Học viện thực hiện: Trần Minh Hùng – CH1101087 21 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI Đây là giao diện chính của ứng dụng chúng ta tạo ra 3 Tạo một project: Các ứng dụng App Engine Java sử dụng các... HỌC: TÍNH TOÁN LƯỚI Hiện nay, Google triển khai platform Google App Engine giúp đỡ các developer phát triển web application Khi người sử dụng dùng dịch vụ này của Google khi triển khai ứng dụng, nếu ứng dụng của mình sử dụng hết tài nguyên mua của Google nếu mình chọn ở mức mua dữ liệu (Google còn cung cấp thêm một mức là sử dụng miễn phí không có chức năng này) thì khi đó google tự động cung cấp thêm... Các file của một ứng dụng bao gồm: các file class đã được biên dịch từ file java, các file JAR của bộ thư viện, các file tĩnh (css,…) và các file xml cấu hình Tất cả được sắp xếp theo một cấu trúc thư mục và nằm trong thư mục WAR a Cấu trúc thư mục project: Một thư mục với tên Guestbook được tạo để chứa dự án Bên trong là hai thư mục, một thư mục mang tên /src để chứa mã nguồn java và một thư mục /war... Học viện thực hiện: Trần Minh Hùng – CH1101087 18 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI 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 các ứng dụng của chúng ta với các đám mây của Google, chúng ta cần một tài khoản AppEngine Làm được một tài khoản chúng ta cần một. .. 1 4 Triển khai ứng dụng: Để upload code và các file chương trình của chúng ta lên Google App Engine ta dùng một tập lệnh có trong SKD có tên: appcfg.cmd Cần chuẩn... guestbook.jsp i theappengine-web.xml : App Engine cần một tập tin cấu hình bổ sung để tìm ra cách để triển khai và chạy ứng dụng File này được đặt tên appengine-web.xml , và nằm trong WEB-INF/ cùng với web.xml Nó bao gồm các ID đăng ký của các ứng dụng của chúng ta (Eclipse tạo ra điều này với một ID trống... vào ứng dụng: Cần 1 ID application đã được đăng ký trên google để upload ứng dụng, theo như cách đăng ký phần trên, ta có được ID application là : 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 giữa thẻ rồi save lại như hình dưới Học viện thực hiện: Trần Minh Hùng – CH1101087 32 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN... email của Google Open http://appengine .google. com/ và đăng nhập với thông tin tài khoản gmail của chúng ta Bước 2: Chọn nút Create Application Học viện thực hiện: Trần Minh Hùng – CH1101087 19 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI Bước 3: Chúng ta cần phải xác minh tài khoản của chúng ta 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 chúng ta, Google sẽ nhắn cho chúng ta một mã... bản của ứng dụng của chúng ta, và danh sách các file đó phải được đối xử như các file tĩnh (như hình ảnh và CSS) và các file tài nguyên (như JSP và dữ liệu ứng dụng khác) Trong thư mục war/WEB-INF/ , một tập tin có tên appengine-web.xml có nội dung sau đây: Học viện thực hiện: Trần Minh Hùng – CH1101087 31 BÀI THU HOẠCH MÔN HỌC: TÍNH TOÁN LƯỚI . ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Bài thu hoạch môn học TÍNH TOÁN LƯỚI Đề tài NGHIÊN CỨU CÔNG NGHỆ ĐIỆN TOÁN ĐÁM MÂY. XÂY DỰNG MỘT ỨNG DỤNG DEMO DÙNG TRONG GÓI THƯ VIỆN GOOGLE APP ENGINE CỦA GOOGLE . khoản Google App Engine: Bước 1:Để triển khai các ứng dụng của chúng ta với các đám mây của Google, chúng ta cần một tài khoản AppEngine. Làm được một tài khoản chúng ta cần một tài khoản email của. LƯỚI Hiện nay, Google triển khai platform Google App Engine giúp đỡ các developer phát triển web application. Khi người sử dụng dùng dịch vụ này của Google khi triển khai ứng dụng, nếu ứng dụng của mình